python文件的讀取、寫(xiě)入與刪除
1.文件的讀取
操作文件的第一步就是得打開(kāi)要操作的文件,然后進(jìn)行讀取文件,最后關(guān)閉文件。在python中我們可以使用open函數(shù)來(lái)打開(kāi)一個(gè)文件,然后讀取文本文件。
讀取文本文件內(nèi)容有三種方法:read()、readline() 和 readlines()
打開(kāi)文件有兩種書(shū)寫(xiě)方式:
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.文件的寫(xiě)入
寫(xiě)入文件,分為向新文件寫(xiě)入數(shù)據(jù)和向已有文件寫(xiě)入數(shù)據(jù)。向文件寫(xiě)入數(shù)據(jù)的過(guò)程為:
- 創(chuàng)建新文件(已有則不需要?jiǎng)?chuàng)建)
- 使用用open()方法打開(kāi)文件
- 使用write()方法向文件寫(xiě)入數(shù)據(jù)
- 使用close()方法關(guān)閉文件
在文件的寫(xiě)入使用open()方法時(shí),需要用到以下三個(gè)參數(shù):
“x” - 創(chuàng)建 - 將創(chuàng)建一個(gè)文件,如果文件存在則返回錯(cuò)誤
“a” - 追加 - 如果指定的文件不存在,將創(chuàng)建一個(gè)文件
“w” - 寫(xiě)入 - 如果指定的文件不存在,將創(chuàng)建一個(gè)文件
1.以"x"方式打開(kāi)文件
注意:如果該文件已存在則會(huì)返回錯(cuò)誤,并且不會(huì)寫(xiě)入內(nèi)容
示例如下:
import os #創(chuàng)建文件1.txt,若文件已存在則返回錯(cuò)誤 ff=open('test1.txt',"x") #向文件寫(xiě)入內(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)文件
該方式是向文件重寫(xiě)數(shù)據(jù),會(huì)覆蓋文件已有的內(nèi)容;同時(shí)該文件不存在還會(huì)自動(dòng)創(chuàng)建文件。
示例如下:
import os #向文件1.txt重寫(xiě)文件內(nèi)容 ff=open('test1.txt',"w") #向文件重寫(xiě)內(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文件的三種方法:一種是直接讀?。涣韮煞N是通過(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ù)的寫(xiě)入
示例如下:
import pandas as pd #創(chuàng)建名為1.xls的文件 ss=pd.ExcelWriter('1.xls') #使用to_excel將df3的數(shù)據(jù)寫(xiě)入到新建的工作簿的工作表1中 df.to_excel(ss,sheet_name='1',index=True) #保存并退出 ss.save()
總結(jié)
到此這篇關(guān)于python文件的讀取、寫(xiě)入與刪除的文章就介紹到這了,更多相關(guān)python文件讀取內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python pandas寫(xiě)入excel文件的方法示例
這篇文章主要介紹了python pandas寫(xiě)入excel文件的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06在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-04Python中使用MELIAE分析程序內(nèi)存占用實(shí)例
這篇文章主要介紹了Python中使用MELIAE分析程序內(nèi)存占用實(shí)例,本文直接給出使用代碼示例,需要的朋友可以參考下2015-02-02Python中內(nèi)置數(shù)據(jù)類型list,tuple,dict,set的區(qū)別和用法
這篇文章主要給大家介紹了Python中內(nèi)置數(shù)據(jù)類型list,tuple,dict,set的區(qū)別和用法,都是非?;A(chǔ)的知識(shí),十分的細(xì)致全面,有需要的小伙伴可以參考下。2015-12-12kaggle+mnist實(shí)現(xiàn)手寫(xiě)字體識(shí)別
這篇文章主要為大家詳細(xì)介紹了kaggle+mnist實(shí)現(xiàn)手寫(xiě)字體識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07