主頁(yè) > 知識(shí)庫(kù) > python實(shí)現(xiàn)簡(jiǎn)單文件讀寫(xiě)函數(shù)

python實(shí)現(xiàn)簡(jiǎn)單文件讀寫(xiě)函數(shù)

熱門(mén)標(biāo)簽:阿里電話機(jī)器人對(duì)話 地圖地圖標(biāo)注有嘆號(hào) 400電話申請(qǐng)資格 螳螂科技外呼系統(tǒng)怎么用 舉辦過(guò)冬奧會(huì)的城市地圖標(biāo)注 正安縣地圖標(biāo)注app 電銷(xiāo)機(jī)器人系統(tǒng)廠家鄭州 遼寧智能外呼系統(tǒng)需要多少錢(qián) qt百度地圖標(biāo)注

python作為腳本性語(yǔ)言,加上它的簡(jiǎn)便易用性。會(huì)經(jīng)常當(dāng)作腳本用來(lái)處理一下數(shù)據(jù)和格式。其中處理文件就是頻繁用處之一。簡(jiǎn)單編寫(xiě)幾個(gè)常用的xls和txt讀寫(xiě)函數(shù),以后可以快速?gòu)?fù)用。

用到xlrd庫(kù)函數(shù)需要預(yù)先install

命令: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語(yǔ)句執(zhí)行完畢后同時(shí)關(guān)閉打開(kāi)的文件句柄。
 ret = []
 with open(txtFile, "r") as f:
 for line in f.readlines():
 line = line.strip('\n') # 去掉換行符
 listInfo = line.split(sep) # 以 sep 分割成數(shù)組
 if listInfo:
 ret.append(listInfo)
 return ret
 
 @classmethod
 def writeToJson(cls, jsonFile, ret):
 '''
 寫(xiě)入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寫(xiě)入文件
 '''
 with open(filePath, 'w') as fp:
 fp.write(s)
 
 @classmethod
 def writeFromList(cls, filePath, wList):
 '''
 list寫(xiě)入文件
 '''
 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)

因文件中有中文,中間遇到中文亂碼問(wèn)題

import sys
reload(sys)
sys.setdefaultencoding('utf-8')
 
 
# encoding="utf-8", ensure_ascii=False

1、這個(gè)是由于Unicode編碼與ASCII編碼的不兼容造成的。
2、通常都是ascii,由此Python自然調(diào)用ascii編碼解碼程序去處理字符流,當(dāng)字符流不屬于ascii范圍內(nèi),就會(huì)拋出異常(ordinal not in range(128))

百度了下通過(guò) 以上方式 解決了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Python初學(xué)者必備的文件讀寫(xiě)指南
  • 詳解python中的異常和文件讀寫(xiě)
  • 使用Python文件讀寫(xiě),自定義分隔符(custom delimiter)
  • Python基于codecs模塊實(shí)現(xiàn)文件讀寫(xiě)案例解析
  • python文件處理--文件讀寫(xiě)詳解

標(biāo)簽:隨州 阜新 信陽(yáng) 合肥 濟(jì)源 淘寶好評(píng)回訪 興安盟 昭通

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python實(shí)現(xiàn)簡(jiǎn)單文件讀寫(xiě)函數(shù)》,本文關(guān)鍵詞  python,實(shí)現(xiàn),簡(jiǎn)單,文件,讀寫(xiě),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python實(shí)現(xiàn)簡(jiǎn)單文件讀寫(xiě)函數(shù)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于python實(shí)現(xiàn)簡(jiǎn)單文件讀寫(xiě)函數(shù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章