python文件的讀取、寫入與刪除
1.文件的讀取
操作文件的第一步就是得打開要操作的文件,然后進(jìn)行讀取文件,最后關(guān)閉文件。在python中我們可以使用open函數(shù)來打開一個文件,然后讀取文本文件。
讀取文本文件內(nèi)容有三種方法:read()、readline() 和 readlines()
打開文件有兩種書寫方式:
1.需要使用close()方法關(guān)閉文件
示例如下:
#文件的讀取
import os
#以相對路徑打開文件
f= open("./test.txt",encoding='utf-8')
#以絕對路徑打開文件
#f= open("D:\\Anacond/work/learn數(shù)據(jù)清洗/文件讀取及其處理/test.txt",encoding='utf-8')
#讀取文件
content=f.read()
#關(guān)閉文件
f.close()2.with語句能自動處理上下文環(huán)境產(chǎn)生的異常并且關(guān)閉文件句柄
示例如下:
import os
#打開文件
with open('./test.txt', encoding='utf-8') as f2:
#讀取文件
contents = f2.read()
print(contents)輸出結(jié)果:
翻山越嶺 尋一個你
不負(fù)此生 不負(fù)相遇 不負(fù)我偏向苦海去
只為渡你
1.read() 讀取整個文件
示例如下:
f3=open('./test.txt', encoding='utf-8')
contents1=f3.read()
f3.close()輸出結(jié)果:
翻山越嶺 尋一個你
不負(fù)此生 不負(fù)相遇 不負(fù)我偏向苦海去
只為渡你
2.readline() 每次讀取一行文件
readline() 每次讀取一行文件,可利用循環(huán)將文件內(nèi)容全部讀出
示例如下:
f4=open('./test.txt', encoding='utf-8')
#此時(shí)只讀取了一行
contents2=f4.readline()
print(contents2)
i=1
#利用循環(huán)全部讀出
while contents2:
print(f'第{i}行 {contents2}')
contents2=f4.readline()
i=i+1
f4.close()輸出結(jié)果:
翻山越嶺 尋一個你
第1行 翻山越嶺 尋一個你
第2行 不負(fù)此生 不負(fù)相遇 不負(fù)我偏向苦海去
第3行 只為渡你
3. readlines() 讀取文件的所有行
readlines()方法讀取整個文件所有行,保存在一個列表(list)變量中;
示例如下:
f5=open('./test.txt', encoding='utf-8')
contents3=f5.readlines()
f5.close()
print(contents3[1])輸出結(jié)果:
不負(fù)此生 不負(fù)相遇 不負(fù)我偏向苦海去
2.文件的寫入
寫入文件,分為向新文件寫入數(shù)據(jù)和向已有文件寫入數(shù)據(jù)。向文件寫入數(shù)據(jù)的過程為:
- 創(chuàng)建新文件(已有則不需要創(chuàng)建)
- 使用用open()方法打開文件
- 使用write()方法向文件寫入數(shù)據(jù)
- 使用close()方法關(guān)閉文件
在文件的寫入使用open()方法時(shí),需要用到以下三個參數(shù):
“x” - 創(chuàng)建 - 將創(chuàng)建一個文件,如果文件存在則返回錯誤
“a” - 追加 - 如果指定的文件不存在,將創(chuàng)建一個文件
“w” - 寫入 - 如果指定的文件不存在,將創(chuàng)建一個文件
1.以"x"方式打開文件
注意:如果該文件已存在則會返回錯誤,并且不會寫入內(nèi)容
示例如下:
import os
#創(chuàng)建文件1.txt,若文件已存在則返回錯誤
ff=open('test1.txt',"x")
#向文件寫入內(nèi)容
ff.write("這一秒,像夢一般心跳")
#關(guān)閉文件
ff.close()
ff=open('test1.txt')
ss=ff.read()
ff.close()
print(ss)輸出結(jié)果:
這一秒,像夢一般心跳
2.以"a"方式打開文件
注意:該方式是向文件追加數(shù)據(jù),會追加到文件的末尾;同時(shí)該文件不存在還會自動創(chuàng)建文件。
示例如下:
import os
#向文件1.txt追加內(nèi)容
ff=open('test1.txt',"a")
#向文件追加內(nèi)容
ff.write(" 美好的無需安排,我一直充滿期待,無所不在的未來,跨過晴空云海")
#關(guān)閉文件
ff.close()文本內(nèi)容:
這一秒,像夢一般心跳 美好的無需安排,我一直充滿期待,無所不在的未來,跨過晴空云海
3.以"w"方式打開文件
該方式是向文件重寫數(shù)據(jù),會覆蓋文件已有的內(nèi)容;同時(shí)該文件不存在還會自動創(chuàng)建文件。
示例如下:
import os
#向文件1.txt重寫文件內(nèi)容
ff=open('test1.txt',"w")
#向文件重寫內(nèi)容
ff.write("Tell me what u gonna do it")
#關(guān)閉文件
ff.close()文件內(nèi)容:
Tell me what u gonna do it
3.文件的刪除
可使用remove()刪除文件,為避免不存在該文件,可檢查文件是否存在,然后再刪除它
示例如下:
import os
if os.path.exists("demofile.txt"):
os.remove("demofile.txt")
else:
print("The file does not exist")4.Excel表數(shù)據(jù)的讀取
python讀取excel文件的三種方法:一種是直接讀取;另兩種是通過pandas讀取,相對比比較方便
1.直接讀取
示例如下:
import xlrd #引入庫
ex=xlrd.open_workbook("超市營業(yè)額.xls")
sheet_num=ex.nsheets #文件中工作表的個數(shù)
print(sheet_num)
sheet_name=ex.sheet_names() #各個工作表的名稱
print(sheet_name)
sheet=ex.sheet_by_index(2) #通過索引獲取第一個工作表
#輸出sheet的形狀
print(sheet.nrows,sheet.ncols)
#獲取第一行的數(shù)據(jù)
row_data=sheet.row_values(0) #返回給定的行數(shù)的單元格數(shù)據(jù)進(jìn)行切片
print(row_data)
#獲取第二列的數(shù)據(jù)
col_data=sheet.col_values(1)
print(col_data)
#獲取位置為(0,1)單元格的數(shù)據(jù)
one_data=sheet.cell(0,1)
print(one_data)輸出結(jié)果:
3
[‘表1’, ‘表2’, ‘表3’]
8 3
[‘工號’, ‘姓名’, ‘職級’]
[‘姓名’, ‘張三’, ‘李四’, ‘王五’, ‘趙六’, ‘周七’, ‘錢八’, ‘孫九’]
text:‘姓名’
2.通過pd.ExcelFile()讀取
示例如下:
import pandas as pd
#讀取工作簿和工作簿中的工作表
fff=pd.ExcelFile('超市營業(yè)額.xls')
print(fff.sheet_names)
#du
data= fff.parse('表3')
data輸出結(jié)果:

3.通過pd.read_excel()讀取
這種方法最為方便快捷
示例如下:
import pandas as pd
#讀取excel文件
#該方法默認(rèn)讀取該文件中第一張表
df=pd.read_excel('./超市營業(yè)額.xls')
#如果Excel文件有多個表格,可通過sheet_name屬性指定,如果不指定默認(rèn)讀取第一張表
#df1=pd.read_excel('./超市營業(yè)額.xls',sheet_name='表3')
df[0:5]輸出結(jié)果:

pd.read_excel()方法的常用參數(shù)
- sheet_name:指定讀取文件中哪一張表
- usecols:指定讀取表中的哪幾列
- header:指定表中哪一列作表頭,也就是列索引
- index_col:指定表中哪一列作行索引
示例如下:
#可讀取任意列
df1=pd.read_excel('./超市營業(yè)額.xls',sheet_name='表3',usecols = [0,2])
print(df1)
#可指定第3行為列索引,指定第2列為行索引
df3=pd.read_excel('./超市營業(yè)額.xls',sheet_name='表3',header=2,index_col=1)
df3輸出結(jié)果:

5.Excel表數(shù)據(jù)的寫入
示例如下:
import pandas as pd
#創(chuàng)建名為1.xls的文件
ss=pd.ExcelWriter('1.xls')
#使用to_excel將df3的數(shù)據(jù)寫入到新建的工作簿的工作表1中
df.to_excel(ss,sheet_name='1',index=True)
#保存并退出
ss.save()總結(jié)
到此這篇關(guān)于python文件的讀取、寫入與刪除的文章就介紹到這了,更多相關(guān)python文件讀取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)的遞歸神經(jīng)網(wǎng)絡(luò)簡單示例
這篇文章主要介紹了Python實(shí)現(xiàn)的遞歸神經(jīng)網(wǎng)絡(luò),是一篇摘錄自github代碼片段的文章,涉及Python遞歸與數(shù)學(xué)運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
python命令行交互引導(dǎo)用戶選擇寵物實(shí)現(xiàn)
這篇文章主要為大家介紹了python命令行交互引導(dǎo)用戶選擇寵物實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
基于Python實(shí)現(xiàn)PDF轉(zhuǎn)換文件格式
這篇文章主要為大家詳細(xì)介紹了如何基于Python實(shí)現(xiàn)PDF轉(zhuǎn)換文件格式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-01-01
Python開發(fā)之QT解決無邊框界面拖動卡屏問題(附帶源碼)
朋友在學(xué)習(xí)QT的過程中,都會遇到各種問題,今天就QT無邊框拖動花屏問題給大家詳細(xì)介紹,究竟該如何解決呢,下面通過實(shí)例代碼和圖文相結(jié)合給大家詳細(xì)介紹,需要的朋友參考下吧2021-05-05
Python 正則表達(dá)式中的`^`和`[]`及常見含義
文章解析Python正則中^和[]的用途:^在字符集前取反,外表示開頭;[]定義字符集,支持范圍、取反及特殊字符處理,需注意與錨點(diǎn)及預(yù)定義類的區(qū)別,本文給大家介紹Python 正則表達(dá)式中的^和[]及含義,感興趣的朋友一起看看吧2025-06-06
Python 正則表達(dá)式中re.group()使用小結(jié)
正則表達(dá)式是在處理字符串時(shí)非常有用的工具,而re.group()是在匹配到的文本中提取特定分組內(nèi)容的方法之一,這篇文章主要介紹了Python 正則表達(dá)式之re.group()用法,需要的朋友可以參考下2024-01-01
GDAL 矢量屬性數(shù)據(jù)修改方式(python)
這篇文章主要介紹了GDAL 矢量屬性數(shù)據(jù)修改方式(python),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03

