1 txt 文件的讀取
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
參數 file 是文件名稱,如‘file.txt’ ;mode 是對文件打開的模式,其他參數一般不用。
函數 open 的參數解釋:
在open函數中默認為只讀。其他模式還有:
w:以寫方式打開
a:以追加模式打開
r+:以讀寫模式打開
w+:以讀寫模式打卡
rb:以二進制讀模式打開
wb:以二進制寫模式打開
ab:以二進制追加模式打開
rb+:以二進制讀寫模式打開
wb+:以二進制讀寫模式打開
ab+:以二進制追加模式打開
open 對象的常用方法:
read():讀取字節到字符串中
readline():打開文件的一行,包括行結束符
readline():打開文件,讀取所有行
write():將字符串寫入文件,寫入對象為字符串
writelines():將列表寫入文件,對象是列表。
seek():偏移量
tell():返回當前文件指針的位置
2 csv 的讀寫
需要模塊 csv ,讀寫函數:
讀取函數
reader(csvfile, dialect='excel', **fmtparams)
參數說明:
csvfile,必須是支持迭代(Iterator)的對象,可以是文件(file)對象或者列表(list)對象,如果是文件對象,打開時需要加"b"標志參數。
dialect,編碼風格,默認為excel的風格,也就是用逗號(,)分隔,dialect方式也支持自定義,通過調用register_dialect方法來注冊,下文會提到。
fmtparam,格式化參數,用來覆蓋之前dialect對象指定的編碼風格。
寫函數
writer(csvfile, dialect='excel', **fmtparams)
參數意義同上。
3 例子
reader = open('data.txt') list_data = reader.readlines() columns = list_data [0].split() list = [] for i in list_data [1:]: list.append(i.split()) with open("test.csv","wb") as csvfile: writer = csv.writer(csvfile) #先寫入columns_name writer.writerow(columns) #寫入多行用writerows writer.writerows(list)
對寫入數據的解析:
首先open()函數打開當前路徑下的名字為'test.csv'的文件,如果不存在這個文件,則創建它,返回csvfile文件對象。
csv.writer(csvfile)返回writer對象myWriter。
writerow()方法是一行一行寫入,writerows方法是一次寫入多行。
注意:如果文件'test.csv'事先存在,調用writer函數會先清空原文件中的文本,再執行writerow/writerows方法。