python3文字讀取與寫入常用程式碼
阿新 • • 發佈:2019-02-15
建立資料夾:
import os
import shutil
def buildfile(echkeyfile):
if os.path.exists(echkeyfile):
#建立前先判斷是否存在資料夾,if存在則刪除
shutil.rmtree(echkeyfile)
os.makedirs(echkeyfile)
else:
os.makedirs(echkeyfile)#else則建立語句
return echkeyfile#返回建立路徑
#傳入的引數是需要建立資料夾的路徑,比如我想在D盤下建立一個名字為newfile的資料夾,則傳入引數為r’ D:\newfile’。同樣,返回的引數也是r’ D:\newfile’
寫入文字1:
import codecs
def write_txt(txt, path):
f = codecs.open(path, 'a', 'utf8')
f.write(str(txt))
f.close()
# 傳入引數為txt,path;txt為需要寫入的內容,資料型別為字串,path為寫入的內容,資料型別為字串。
# 傳入的path需如下定義:path= r’ D:\text.txt’
# f = codecs.open(path, 'a', 'utf8')中,codecs為包,需要用impor引入,’a’表示追加寫入txt,可以換成’w’,表示覆蓋寫入。'utf8'表述寫入的編碼,可以換成'utf16'等。
寫入文字2(等同於寫入文字1,但是這個比較常用):
import codecs
def writetxt(path, content, code):
with codecs.open(path, 'a', encoding=code)as f:
f.write(content)
return path+' is ok!'
讀取txt:
def read_txt(path):
with open(path, 'r', encoding='utf8') as f:
lines = f.readlines()
return lines
# 表示按行讀取txt檔案,utf8表示讀取編碼為utf8的檔案,可以根據需求改成utf16,或者GBK等。
# 返回的為陣列,每一個數組的元素代表一行,若想返回字串格式,可以將改寫成return ‘\n’.join(lines)
讀取Excel檔案:
import xlrd
def read_xls(path):
xl = xlrd.open_workbook(path)
sheet = xl.sheets()[0] # 0表示讀取第一個工作表sheet
data = []
for i in range(0, sheet.ncols): # ncols表示按列讀取
data.append(list(sheet.col_values(i)))
return data
# xlrd為第三方包,可以通過用pip下載,具體操作:開啟執行,輸入cmd→在cmd中輸入pip install xlrd,enter →等待安裝完成即可。在後續若存在需要使用的第三方包,都可以通過這種方式下載和安裝。
# 傳入引數為path,path為excel所在路徑。
# 傳入的path需如下定義:path= r’ D:\excel.xlsx’或path= r’ D:\excel.xls’
# col_values(i)表示按照一列中的所有單元格遍歷讀取
# 可以根據需求,把col替換成row,則表示按行讀取
# return data :返回的data是一個二維陣列,根據col和row,傳回的資料呈現形式也不同,即row是col的轉置。
遍歷資料夾:
def file_walker(path):
fileArray = []
for root, dirs, files in os.walk(path):
for fn in files:
eachpath = str(root+'\\'+fn)
fileArray.append(eachpath)
return fileArray
# 傳入引數為path,path為需要遍歷的資料夾路徑。
# return fileArray 返回的是當前檔案下所有檔案的絕對路徑