基礎:.txt文件的讀寫
讀文件
filename.txt如下:
張三
男
20
李四
男
25
趙五
女
18
按行讀取 readline()
file = open('filename.txt', 'r', encoding='UTF-8')
while True:
content = f.readline() # 按行讀
if content == '':
break
content = content.strip().split()
name = content[0] # 張三 李四 趙五
讀取所有 readlines()
file = open('filename.txt', 'r', encoding='UTF-8')
content = file.readlines()
for line in content:
print(line) # 張三 男 20
name = line[0] # 張三
1
2
3
4
5
6
兩種讀法各有利弊,根據具體情況選用。
寫文件
file = open('filename.txt', 'w', encoding='utf8')
file.writelines('序號'+ '\t' + '姓名' + '\t' + '年齡' + '\n')
file.writelines('1'+ '\t' + '張三' + '\t' + '20' + '\n')
1
2
3
4
進階:用xlrd和xlwt對.xls文件進行讀寫
xlrd模塊
xlrd模塊用來讀取.xls文件
import xlrd
# 打開一個.xls文件
workbook = xlrd.open_workbook('filename.xls')
# 文件的第一個sheet
sheet = workbook.sheet_by_index(0)
# 文件的總行數
nrows = sheet.nrows
# 按行查詢文件內容
for i in range(1, nrows):
row = sheet.row_values(i) # 第i行的所有信息
content = row[0] # 第i行第0列的內容
xlwt模塊
xlwt模塊可以將數據寫入.xls文件
import xlwt
# 創建一個xls文件
file = xlwt.Workbook(encoding='utf-8')
#新建一個sheet,并且給它命名
table = file.add_sheet('rules')
#在這個sheet下,用write填寫,第一個參數是行,第二個是列,第三個是單元格內容
table.write(0, 0, '序號')
table.write(0, 1, '姓名')
table.write(1, 0, '1')
table.write(1, 0, '張三')
# 保存文件
xls_file.save('filaname.xls')
所以上面的例子可以生成:
序號
姓名
1
張三
注意,xlrd可以讀取.xls和.xlsx類型的文件。
但是xlwt只能生成.xls類型的文件,不能生成.xlsx類型的文件,會報錯。
再進階:利用pandas進行文件的讀取
pandas非常之好用,可以讀取txt, csv等各種類型的文件,再加上pandas自帶的各種功能,對數據進行統計、分析就變得簡單了。
read_table
df = pd.read_table('filename.txt', header=None, names=['name', 'gender', 'age'])
# 統計
print(df.age.value_counts()) # 數一下同一個年齡的有多少人
print(df.groupby(['age']).size()) # 也是統計age列的個數
print(df.groupby(['age', 'gender']).size() # 高級的地方在于可以安排多個列排序
# 相當于先按照age排序,然后age相同的再用gender區分。和excel的高級篩選差不多。
read_csv
df = pd.read_csv('filaname.csv')
1
如果僅僅是需要讀文件中的內容,前兩個就夠用了。但側重點在讀取數據后,還需要對數據進行修改、刪除、統計、歸類等等操作,那就非常推薦pandas啦。
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。