python文件的讀取、寫入與刪除
1.文件的讀取
操作文件的第一步就是得打開(kāi)要操作的文件,然后進(jìn)行讀取文件,最后關(guān)閉文件。在python中我們可以使用open函數(shù)來(lái)打開(kāi)一個(gè)文件,然后讀取文本文件。
讀取文本文件內(nèi)容有三種方法:read()、readline() 和 readlines()
打開(kāi)文件有兩種書寫方式:
1.需要使用close()方法關(guān)閉文件
示例如下:
#文件的讀取
import os
#以相對(duì)路徑打開(kāi)文件
f= open("./test.txt",encoding='utf-8')
#以絕對(duì)路徑打開(kāi)文件
#f= open("D:\\Anacond/work/learn數(shù)據(jù)清洗/文件讀取及其處理/test.txt",encoding='utf-8')
#讀取文件
content=f.read()
#關(guān)閉文件
f.close()2.with語(yǔ)句能自動(dòng)處理上下文環(huán)境產(chǎn)生的異常并且關(guān)閉文件句柄
示例如下:
import os
#打開(kāi)文件
with open('./test.txt', encoding='utf-8') as f2:
#讀取文件
contents = f2.read()
print(contents)輸出結(jié)果:
翻山越嶺 尋一個(gè)你
不負(fù)此生 不負(fù)相遇 不負(fù)我偏向苦海去
只為渡你
1.read() 讀取整個(gè)文件
示例如下:
f3=open('./test.txt', encoding='utf-8')
contents1=f3.read()
f3.close()輸出結(jié)果:
翻山越嶺 尋一個(gè)你
不負(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é)果:
翻山越嶺 尋一個(gè)你
第1行 翻山越嶺 尋一個(gè)你
第2行 不負(fù)此生 不負(fù)相遇 不負(fù)我偏向苦海去
第3行 只為渡你
3. readlines() 讀取文件的所有行
readlines()方法讀取整個(gè)文件所有行,保存在一個(gè)列表(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ù)的過(guò)程為:
- 創(chuàng)建新文件(已有則不需要?jiǎng)?chuàng)建)
- 使用用open()方法打開(kāi)文件
- 使用write()方法向文件寫入數(shù)據(jù)
- 使用close()方法關(guān)閉文件
在文件的寫入使用open()方法時(shí),需要用到以下三個(gè)參數(shù):
“x” - 創(chuàng)建 - 將創(chuàng)建一個(gè)文件,如果文件存在則返回錯(cuò)誤
“a” - 追加 - 如果指定的文件不存在,將創(chuàng)建一個(gè)文件
“w” - 寫入 - 如果指定的文件不存在,將創(chuàng)建一個(gè)文件
1.以"x"方式打開(kāi)文件
注意:如果該文件已存在則會(huì)返回錯(cuò)誤,并且不會(huì)寫入內(nèi)容
示例如下:
import os
#創(chuàng)建文件1.txt,若文件已存在則返回錯(cuò)誤
ff=open('test1.txt',"x")
#向文件寫入內(nèi)容
ff.write("這一秒,像夢(mèng)一般心跳")
#關(guān)閉文件
ff.close()
ff=open('test1.txt')
ss=ff.read()
ff.close()
print(ss)輸出結(jié)果:
這一秒,像夢(mèng)一般心跳
2.以"a"方式打開(kāi)文件
注意:該方式是向文件追加數(shù)據(jù),會(huì)追加到文件的末尾;同時(shí)該文件不存在還會(huì)自動(dòng)創(chuàng)建文件。
示例如下:
import os
#向文件1.txt追加內(nèi)容
ff=open('test1.txt',"a")
#向文件追加內(nèi)容
ff.write(" 美好的無(wú)需安排,我一直充滿期待,無(wú)所不在的未來(lái),跨過(guò)晴空云海")
#關(guān)閉文件
ff.close()文本內(nèi)容:
這一秒,像夢(mèng)一般心跳 美好的無(wú)需安排,我一直充滿期待,無(wú)所不在的未來(lái),跨過(guò)晴空云海
3.以"w"方式打開(kāi)文件
該方式是向文件重寫數(shù)據(jù),會(huì)覆蓋文件已有的內(nèi)容;同時(shí)該文件不存在還會(huì)自動(dòng)創(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文件的三種方法:一種是直接讀??;另兩種是通過(guò)pandas讀取,相對(duì)比比較方便
1.直接讀取
示例如下:
import xlrd #引入庫(kù)
ex=xlrd.open_workbook("超市營(yíng)業(yè)額.xls")
sheet_num=ex.nsheets #文件中工作表的個(gè)數(shù)
print(sheet_num)
sheet_name=ex.sheet_names() #各個(gè)工作表的名稱
print(sheet_name)
sheet=ex.sheet_by_index(2) #通過(guò)索引獲取第一個(gè)工作表
#輸出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
[‘工號(hào)’, ‘姓名’, ‘職級(jí)’]
[‘姓名’, ‘張三’, ‘李四’, ‘王五’, ‘趙六’, ‘周七’, ‘錢八’, ‘孫九’]
text:‘姓名’
2.通過(guò)pd.ExcelFile()讀取
示例如下:
import pandas as pd
#讀取工作簿和工作簿中的工作表
fff=pd.ExcelFile('超市營(yíng)業(yè)額.xls')
print(fff.sheet_names)
#du
data= fff.parse('表3')
data輸出結(jié)果:

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

pd.read_excel()方法的常用參數(shù)
- sheet_name:指定讀取文件中哪一張表
- usecols:指定讀取表中的哪幾列
- header:指定表中哪一列作表頭,也就是列索引
- index_col:指定表中哪一列作行索引
示例如下:
#可讀取任意列
df1=pd.read_excel('./超市營(yíng)業(yè)額.xls',sheet_name='表3',usecols = [0,2])
print(df1)
#可指定第3行為列索引,指定第2列為行索引
df3=pd.read_excel('./超市營(yíng)業(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Python中使用PIL模塊對(duì)圖片進(jìn)行高斯模糊處理的教程
這篇文章主要介紹了在Python中使用PIL模塊對(duì)圖片進(jìn)行高斯模糊處理的教程,這個(gè)無(wú)圖形界面的腳本代碼非常簡(jiǎn)單,需要的朋友可以參考下2015-05-05
淺談tensorflow中幾個(gè)隨機(jī)函數(shù)的用法
今天小編就為大家分享一篇淺談tensorflow中幾個(gè)隨機(jī)函數(shù)的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
基于numpy.random.randn()與rand()的區(qū)別詳解
下面小編就為大家分享一篇基于numpy.random.randn()與rand()的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
Python中使用MELIAE分析程序內(nèi)存占用實(shí)例
這篇文章主要介紹了Python中使用MELIAE分析程序內(nèi)存占用實(shí)例,本文直接給出使用代碼示例,需要的朋友可以參考下2015-02-02
Python中內(nèi)置數(shù)據(jù)類型list,tuple,dict,set的區(qū)別和用法
這篇文章主要給大家介紹了Python中內(nèi)置數(shù)據(jù)類型list,tuple,dict,set的區(qū)別和用法,都是非常基礎(chǔ)的知識(shí),十分的細(xì)致全面,有需要的小伙伴可以參考下。2015-12-12
kaggle+mnist實(shí)現(xiàn)手寫字體識(shí)別
這篇文章主要為大家詳細(xì)介紹了kaggle+mnist實(shí)現(xiàn)手寫字體識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07

