日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基本文件方法

發布時間:2025/7/14 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基本文件方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#前面了解了打開文件的open函數,也做了一些簡單的示例,接下來介紹一些基本文件方法,在開始介紹之前,首先了解一下流的概念。 #I/O編程中,Stream(流)是一個很重要的概念。可以把流想象成一個水管,數據就是水管里的水,但是只能單向流動。Input Stream就是數據從外面(磁盤、網絡)流進內存,Output Stream就是數據從內存流到外面去。瀏覽網頁時,瀏覽器和服務器之間至少需要建立兩根水管,才能既發送數據又接受數據。 1、讀和寫 #open函數返回的是一個File對象,有了File對象,就可以開始讀取內容。如果希望將整個文件的內容讀取為一個字符串值,可以使用File對象的read()方法。 #Read()方法從一個打開的文件中讀取字符串,需要注意,Python字符串可以是二進制數據,而不是僅僅是文字。語法如下: 1 fileObject.read([count]) #fileObject為open函數返回的File對象,count參數是從已打開的文件中讀取的字節計數。該方法從文件的開頭開始讀入,如果沒有傳入count,就會嘗試盡可能多地讀取內容,很可能一直讀取到文件末尾。 #比如我們在test.txt文件寫入“Hello Python!wecome ”,執行如下代碼: 1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #read 4 5 path='./test.txt' 6 7 f_name=open(path,'r') 8 print('read result',f_name.read(12)) #執行結果如下: 1 D:\Pythonworkspace>python read.py 2 read result: Hello Python #由執行結果看到,通過read方法我們讀取了文件中從頭開始的12個字符串。 #將print('read result:'f_name.read(12))更改為print('read result:'f_name.read()),得到的執行結果如下: 1 D:\Pythonworkspace>python read.py 2 read result: Hello Python!Wecome! #由執行結果看到,沒有指定讀取字節數時,read方法會讀取打開文件中的所有字節。 #除了讀取數據外,我們還可以像文件中寫入數據。在Python中,將內容寫入文件的方式與print函數將字符串輸出到屏幕上類似。 如果打開文件時使用讀模式,就不能寫入文件,即不能用下面這種形式操作文件: 1 open(path,'rw') #在Python中,用write()方法向一個文件寫入數據。write()方法可將任何字符串寫入一個打開的文件。需要注意,Python字符串可以是二進制數據,而不僅僅是文字。 #write()方法不會在字符串結尾添加換行符('\n'),語法如下: 1 fileObject.write(string) #fileObject為open函數返回的File對象,string參數是需要寫入文件中的內容。 #該方法返回寫入文件的字符串的長度。 #例如: 1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #write 4 5 path='./test.txt' 6 f_name=open(path,'w') 7 print('write length:',f_name.write('Hello Python!')) #執行結果如下: 1 D:\Pythonworkspace>python write.py 2 write length: 13 #由執行結果看到,我們向test.txt文件中寫入了13個字符。下面驗證一下寫入是否是我們指定的字符,在上面的程序中追加兩行代碼并執行: 1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #read_write 4 5 path='./test.txt' 6 f_name=open(path,'w') 7 print('write length:',f_name.write('Hello Python!')) 8 9 f_name=open(path,'r') 10 print('read result:',f_name.read()) #執行結果如下: 1 D:\Pythonworkspace>python write.py 2 write length: 13 3 read result: Hello Python! #由執行結果看到,寫入文件的是我們指定的內容。不過這有一個疑問,我們這里執行了兩次寫入操作,得到的結果怎么只寫入了一次? #寫文件(write)方法的處理方式:將覆寫原有文件,從頭開始,每次寫入都會覆蓋前所有內容,就像用一個新值覆蓋一個變量的值。若需要在當前文件的字符串后追加字符,該如何操作? #可以將第二個參數w更改為a,即以追加模式打開文件,例如: 1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #write.a 4 5 path='./test.txt' 6 7 f_name=open(path,'w') 8 print('write length:',f_name.write('Hello Python!')) 9 10 f_name=open(path,'r') 11 print('read result:',f_name.read()) 12 13 f_name=open(path,'a') 14 print('write length:',f_name.write('Wecome!')) 15 16 f_name=open(path,'r') 17 print('read result:',f_name.read()) #執行結果如下: 1 D:\Pythonworkspace>python read.write.py 2 write length: 13 3 read result: Hello Python! 4 write length: 7 5 read result: Hello Python!Wecome! #由執行結果看到,輸出結果在文件末尾成功追加了對應的字符串。 #如果傳遞open函數的文件名不存在,寫模式(w)和追加模式(a)就會創建一個新的空文件,然后執行寫入或追加。 #如果想追加的字符串在下一行,該如何操作。 #在Python中,用\n表示換行。對于上面的示例,若需要追加的內容在下一行,可以如下操作: 1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #\n 4 5 path='./test.txt' 6 7 f_name=open(path,'w') 8 print('write length:',f_name.write('Hello Python!'+'\n')) 9 10 f_name=open(path,'r') 11 print('read result:',f_name.read()) 12 13 f_name=open(path,'a') 14 print('add length:',f_name.write('Wecome!')) 15 16 f_name=open(path,'r') 17 print('read result:',f_name.read()) #執行結果如下: 1 D:\Pythonworkspace>python write_n.py 2 write length: 14 3 read result: Hello Python! 4 5 add length: 7 6 read result: Hello Python! 7 Wecome! #由執行結果看到,追加的內容在下一行了。 #若需要讀或寫特定編碼方式的文本,則需要給open函數傳入encoding參數;若需要讀取GBK編碼的文件,則前面示例可以改寫為f_name=open(path,'r',encoding='gbk'),這樣讀取到的文件就是GBK編碼方式的文件了。 2、讀寫行 #我們目前對文件的讀操作是按字節讀或整個讀取,而寫操作是全部覆寫或追加,這樣的操作在實際應用中很不實用。Python為我們提供了readline()、readlines()和writelines()等方法用于行操作,例如: 1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #readline 4 5 path='./test.txt' 6 f_name=open(path,'w') 7 f_name.write('Hello Python!\n') 8 f_name=open(path,'a') 9 f_name.write('Wecome!') 10 f_name=open(path,'r') 11 print('readline result:',f_name.readline()) #執行結果為: 1 D:\Pythonworkspace>python readline.py 2 readline result: Hello Python! #由執行結果得知,readline方法會從文件中讀取單獨一行,換行符為\n。readline方法如果返回一個空字符串,說明已經讀取到了最后一行了。 #readline方法也可以像read方法一樣傳入數值讀取對應的字符數,傳入小于0的數值表示整行都要輸出。 #如果將上面示例的最后一行: 1 print('readline result:',f_name.readline()) #更改為: 1 print('readline result:',f_name.readlines()) #得到的輸出結果為: 1 D:\Pythonworkspace>python readline.py 2 readline result: ['Hello Python!\n', 'Wecome!'] #輸出結果為一個字符串的列表。列表中的每個字符串就是文本中的每一行,并且換行符也會被輸出。 #readlines方法可以傳入數值參數,當傳入的數值小于等于列表中一個字符串的長度值時,該字符串會被讀取;當傳入小于等于0的數值時,所有字符都會被讀取。 #例如: 1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #readlines 4 5 path='./test.txt' 6 7 f_name=open(path,'w') 8 str_list=['Hello Python!\n','Wecome!\n','Wecome!\n'] 9 print('write length:',f_name.writelines(str_list)) 10 f_name=open(path,'r') 11 print('read result:',f_name.read()) 12 f_name=open(path,'r') 13 print('read result:',f_name.readlines()) #執行結果如下: 1 D:\Pythonworkspace>python readlines.py 2 write length: None 3 read result: Hello Python! 4 Wecome! 5 Wecome! 6 7 read result: ['Hello Python!\n', 'Wecome!\n', 'Wecome!\n'] #由執行結果看到,writelines方法和readlines方法相反,傳給他一個字符串列表(任何序列或可迭代對象),他會把所有字符串寫入文件。如果沒有writeline方法,就可以使用write方法代替這個方法的功能。 3、關閉文件 #前面了解了很多讀取和寫入文件的內容,都沒有提到在讀或寫的過程中出現異常時該如何處理。在讀或寫文件的過程中,出現異常的概論還是挺高的,特別是對于大文件的讀取和寫入,出現異常更是頻繁。在讀或寫文件的過程中,出現異常該如何處理。 #這就需要用到前面學的異常的知識了,用try語句捕獲可能出現的異常。在捕獲異常前有一個動作要執行,就是使用close方法關閉文件。 #一般情況下,一個文件對象在退出程序后會自動關閉,但是為了安全起見,還是要顯式地寫一個close方法關閉文件。一般顯示關閉文件讀或寫的操作如下: 1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #close 4 5 path='./test.txt' 6 7 f_name=open(path,'w') 8 print('write length:',f_name.write('Hello Python!')) 9 f_name.close() #這段代碼和沒有加close方法的執行結果一樣。這樣處理后的函數比沒有加close時更安全,可以避免在某些操作系統或設置中進行無用的修改,也可以避免用完系統中所打開文件的配額。 #對內容更改過的文件一定要記得關閉,因為寫入的數據可能被緩存,如果程序或系統因為某些原因而崩潰,被緩存部分數據就不會寫入文件了。為了安全起見,在使用完文件后一定要記得關閉。 #當使用try語句出現異常時,即使使用了close方法,也可能不被執行,這時該怎么辦? #是否正常都會調用close方法。上面的示例可以更改成更安全的形式: 1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #close2 4 5 path='./test.txt' 6 try: 7 f_name=open(path,'w') 8 print('write length:',f_name.write('Hello Python!')) 9 finally: 10 if f_name: 11 f_name.close() #如果每次都要這么寫,就會很繁瑣,是否有更簡便的方式處理呢? #Python中引入了with語句自動幫我們調用close方法。可以使用with語句將上面的程序更改為: 1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #close2 4 5 path='./test.txt' 6 with open(path,'w') as f: 7 f_name=open(path,'w') 8 print('write length:',f_name.write('Hello Python!')) #這段代碼和上面的使用try/finally的效果一樣,并且會自動調用close方法,不用顯式地寫該方法。可以發現,代碼比前面簡潔多了,后面可以多用這種方式編寫。 4、文件重命名 #在應用程序的過程中,我們可能需要程序幫助我們重命名某個文件的名字,而不是通過手動的方式進行,這樣是否可行呢? #Python的os模塊為我們提供了rename方法,即文件重命名。使用這個方法需要導入os模塊。 #rename方法的語法如下: 1 os.rename(current_file_name,new_file_name) #os為導入的os模塊,current_file_name為當前文件名,new_file_name為新文件名。若文件不在當前目錄下,則文件名需要帶上絕對路徑。 #該方法沒有返回值。 #使用示例如下: 1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #rename 4 5 import os 6 7 open('./test1.txt','w') 8 os.rename('test1.txt','test2.txt') #執行結果可以到對應目錄下查看,若之前已經創建了名為test1.txt的文件,則將文件名更改為test2.txt;若之前沒有創建test1.txt文件,則先創建test1.txt文件,然后將文件更改為test2.txt。 5、刪除文件 #在應用程序的過程中,我們是否可以通過程序刪除某個文件呢? #Python的os模塊為我們提供了remove方法,即刪除文件。使用這個方法需要導入os模塊。remove方法的語法如下: 1 os.remove(file_name) #os為導入的os模塊,file_name為需要刪除的文件名。若文件不在當前目錄,則文件名需要使用絕對路徑。 #該方法沒有返回值。 #使用示例如下: 1 #!/usr/bin/python3 2 #-*-coding:UTF-8-*- 3 #remove 4 5 import os 6 7 try: 8 print('remove result:',os.remove('test2.txt')) 9 except Exception: 10 print('file not found') #執行兩次的結果如下: 1 D:\Python\workspace\datatime\20180116>python remove.py 2 remove result: None 3 4 D:\Python\workspace\datatime\20180116>python remove.py 5 file not found #執行該文件會把前面的示例中重命名的test2.txt文件刪除。當然,該方法只能刪除已經存在的文件,文件不存在就會拋出異常。

轉載于:https://www.cnblogs.com/DLHe/p/8367502.html

總結

以上是生活随笔為你收集整理的基本文件方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99精品热视频 | 不用播放器av | av电影在线观看 | 中文字幕一区二区三区乱码 | 欧日韩av | 无码国产69精品久久久久网站 | 欧美精品免费播放 | 九九热在线观看视频 | 久久精品国产99精品国产亚洲性色 | 国产一区视频在线免费观看 | 亚洲无码精品在线播放 | 国产一区二区三区在线免费 | 国产真人做爰视频免费 | 亚洲色图27p| 日韩在线不卡av | 污片免费在线观看 | 日本少妇裸体做爰 | 欧洲av在线| 日本免费网址 | 美女露胸露尿口 | 麻豆网站在线 | 成人免费在线 | 日本三级视频在线观看 | 亚洲啪啪| 成人春色影视 | 毛片在线网站 | 熟女少妇内射日韩亚洲 | 自拍偷拍视频网站 | 极品videosvideo喷水 | 欧美日韩一卡 | a天堂视频| 国产精品夜夜爽 | 黄色激情视频在线观看 | av网站免费播放 | 黑人欧美一区二区三区 | 潘金莲一级淫片免费放动漫 | 黄骗免费网站 | 热热色av | 中文在线第一页 | 日本第一页 | 五月天婷婷导航 | 亚洲欧美日韩在线一区 | 特黄特色特刺激免费播放 | 成人黄网免费观看视频 | 亚洲hh| 99国产视频在线 | 91蜜桃视频在线观看 | 亚洲色在线视频 | 精品少妇一区二区 | www.午夜视频 | 亚洲啊啊啊啊啊 | 国产精品久久久久三级 | 欧美亚洲第一页 | 国产精品嫩草影院av蜜臀 | 色吟av | 色播五月激情五月 | 亚洲三级在线观看 | 国产欧美日韩精品在线观看 | 国产青青在线 | 麻豆区1免费 | 亚洲熟妇无码乱子av电影 | 97视频总站 | 国产精品 欧美 日韩 | 女同二区| 椎名由奈在线观看 | 91精品婷婷国产综合久久蝌蚪 | 国产女人高潮视频 | jizz欧美性23 | 精品伦精品一区二区三区视频 | 我会温柔一点的日剧 | 亚洲码欧美码一区二区三区 | 国产一级在线 | 色久视频 | 欧美日韩国产成人精品 | 久久嫩草视频 | 午夜色综合 | 亚洲精品无码久久久久 | 夜夜操女人 | 中文字幕理论片 | a级一片| 天天操天天玩 | 色狠狠一区二区 | 干干操操| 亚洲最大的黄色网 | 欧美激情久久久久 | 杨幂一区二区三区免费看视频 | 国产精品一二三区 | 一区二区三区激情视频 | 日本做爰三级床戏 | 国产性一乱一性一伧一色 | 天海翼中文字幕 | 97免费超碰 | 欧美熟妇久久久久 | 国产稀缺精品盗摄盗拍 | 孕妇丨91丨九色 | 天堂网一区 | 好爽又高潮了毛片 | 成人亚洲精品777777ww | 欧美黄色高清视频 |