python 간단한 파일 읽기 함수 구현
3158 단어 python파일 읽기 및 쓰기
xlrd 라이브러리 함수를 사용하려면 미리 설치해야 합니다
명령:pip install xlrd
직접 소스 코드:
#! /usr/bin/python
# coding:utf-8
import json
import xlrd
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
class ObjectFileReadAndWrite(object):
@classmethod
def readXlsToDict(cls, xlsFile):
'''
xls dict
'''
data = xlrd.open_workbook(xlsFile)
table = data.sheet_by_index(0)
ret = []
keys = table.row_values(0)
for rowNum in range(table.nrows):
oneRowValues = table.row_values(rowNum)
if rowNum > 0:
d = {}
for colIdx, key in enumerate(keys):
d[key] = oneRowValues[colIdx]
ret.append(d)
return ret
@classmethod
def readXlsToList(cls, xlsFile):
'''
xls list
'''
data = xlrd.open_workbook(xlsFile)
table = data.sheet_by_index(0)
ret = []
for rowNum in range(table.nrows):
oneRowValues = table.row_values(rowNum)
ret.append(oneRowValues)
return ret
@classmethod
def readTxt(cls, txtFile, sep):
'''
txt
'''
# with + open with 。
ret = []
with open(txtFile, "r") as f:
for line in f.readlines():
line = line.strip('
') #
listInfo = line.split(sep) # sep
if listInfo:
ret.append(listInfo)
return ret
@classmethod
def writeToJson(cls, jsonFile, ret):
'''
json
'''
with open(jsonFile, 'w') as fp:
json.dump(ret, fp, indent=2, sort_keys=True, encoding="utf-8", ensure_ascii=False)
@classmethod
def writeFromStr(cls, filePath, s):
'''
string
'''
with open(filePath, 'w') as fp:
fp.write(s)
@classmethod
def writeFromList(cls, filePath, wList):
'''
list
'''
with open(filePath, 'w') as fp:
fp.writelines(wList)
if __name__ == "__main__":
obj = ObjectFileReadAndWrite()
# xls
ret = obj.readXlsToDict(xlsFile='xxx.xls')
obj.writeToJson('xxx.json', ret)
# txt
ret2 = obj.readTxt(txtFile='result.txt', sep=" ")
obj.writeToJson('result.json', ret2)
파일에 중국어가 있기 때문에, 중간에 중국어 부호 문제가 발생하였다.
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
# encoding="utf-8", ensure_ascii=False
1. 이것은 유니코드 인코딩과 ASCII 인코딩이 호환되지 않아서 생긴 것이다.2. 통상적으로 ascii이다. 이로써Python은 ascii 인코딩 프로그램을 호출하여 문자 흐름을 처리한다. 문자 흐름이 ascii 범위에 속하지 않으면 이상을 던진다(ordinal not in range(128).
바이두는 아래와 같은 방식으로 해결했다.
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.