中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python進行文件操作的方法有哪些

發布時間:2021-12-27 10:01:42 來源:億速云 閱讀:140 作者:iii 欄目:大數據

本篇內容介紹了“python進行文件操作的方法有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

如何關閉文件
當文件操作結束時,我們最好主動關閉文件。盡管Python有垃圾回收(garbage collector)機制,去清理不用的對象,但是最好還是自己關閉文件。

最簡單的方法就是:

f = open("app.log", 'r')
do_something()
f.close()

但是這個辦法不安全,因為在進行其他操作時,可能會出現異常,程序退出,那么關閉文件的語句就不會被執行。

因此,可以用<try-finally>語句來處理:

try:
   f = open('app.log', 'r')
   do_something()
finally:
   f.close()

無論是否發生異常,關閉文件的指令都會被執行。

但是python官方給出的最佳用法是:

with open('app.log', 'r') as f:
do_something()
使用這種用法,我們不必調用close()方法,在with語句程序內部就會執行,無論內部是否出現異常。with語句被稱為上下文管理器,我們可以暫且不管這個的原理,只需要知道使用with語句,關閉文件的操作會被自動執行,這也是官方推薦的最佳用法,比用<try-finally>語句寫起來簡單。

文件操作
寫入文件
主要介紹兩個方法:

1.write()方法

這個方法的參數是一個單獨的字符串,比如:

lines = ['line1', 'line2']
with open('filename.txt', 'w') as f:
    s = ''
    for data in lines:
        s += data
        s += '\n'
    f.write(s)

其實更好的寫法是使用join函數:

lines = ['line1', 'line2']
with open('filename.txt', 'w') as f:
    f.write('\n'.join(lines))

2.writelines()方法

參數是一組可迭代的字符串,比如

lines = ['line1', 'line2']
with open('filename.txt', 'w') as f:
    new_lines = []
    for data in lines:
        new_lines.append(data+'\n')
    f.writelines(new_lines)

其實更加優雅的寫法,可以使用生成器:

lines = ['line1', 'line2']
with open('filename.txt', 'w') as f:
    f.writelines("%s\n" % l for l in lines)

讀取文件
這里介紹四種用法,后面都默認文件已經被打開了:

1.read()

result = f.read()

這里返回的是文件內容,是str類型的結果,這個方法還帶一個數值類型的參數,指定讀取多少內容,如果省略了或者是負數,那么就返回文件的全部內容。

2.readline()

result = f.readline()

返回的也是字符串,不過是一行內容,繼續調用,就會返回下一行內容

3.readlines()

result = f.readlines()
這里返回的是一個列表,但是當數據較大時,這樣的用法會很占用內存,不推薦在數據量大時使用

4.直接循環文件對象

for line in f:
    print line
    do_something()

這樣的用法節省內存,快速,并且代碼還簡單

result = f.readlines()
------------------------
result = list(f)

這兩種寫法返回的結果是一樣的

顯然我們推薦第四種用法。

如何處理大文件
大文件主要問題在于占用內存較大,我們不能一下子將文件全部內容讀入內存,最好的做法如下:

with open("log.txt") as f:
    for line in f:
        do_something_with(line)

一行一行讀取,速度也更快,使用with語句,無論內部是否出現異常,在結束時,文件對象都會被關閉,因此在處理大文件時,非常推薦這種做法。

“python進行文件操作的方法有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

和田县| 如皋市| 饶平县| 蒲江县| 闻喜县| 常山县| 新巴尔虎左旗| 平舆县| 高清| 汝阳县| 南华县| 济阳县| 延川县| 陈巴尔虎旗| 东方市| 襄汾县| 上虞市| 湘潭市| 赫章县| 子洲县| 奎屯市| 通州区| 固阳县| 巴马| 连南| 雅江县| 修文县| 黔江区| 齐齐哈尔市| 彰武县| 汉中市| 赫章县| 济南市| 新源县| 临清市| 海兴县| 西充县| 大安市| 和硕县| 丹东市| 炉霍县|