簡體   English   中英

什么是打開文件的最pythonic方式?

[英]What is the most pythonic way to open a file?

我正在嘗試清理我的代碼,我很難確定這兩種方法中的哪一種被認為是最具pythonic的方式

import os

dir = os.path.dirname(__file__)
str1 = 'filename.txt'
f = open(os.path.join(dir,str1),'r')

雖然第二個似乎是最干凈的,但我發現fullPath的聲明有點過多,因為它只會被使用一次。

import os

dir = os.path.dirname(__file__)
str1 = 'filename.txt'
fullPath = os.path.join(dir,str1)
f = open(fullPath,'r')

一般來說,避免在另一個調用中調用函數是否更好,即使它添加了一行代碼?

with open('file path', 'a') as f:
   data = f.read()
   #do something with data

要么

f = open(os.path.join(dir,str1),'r')
f.close()
file = open('newfile.txt', 'r') 

for line in file:

      print line

要么

lines = [line for line in open('filename')]

如果文件很大,read()絕對是個壞主意,因為它將整個文件加載到內存中(沒有大小參數)。

如果您的文件很大,這將導致延遲!

所以,我不推薦read()或readlines()

有很多方法可以在python中打開文件,這說明確實沒有真正的pythonic方法。 這一切只是歸結為你看到哪種方法最為一致,特別是關於你打開文件后實際嘗試做什么。

大多數用戶使用IDLE GUI“點擊”打開文件,因為它允許他們查看當前文件,並在需要時進行一些更改。

其他人可能只是依靠命令行來執行任務,代價是除了打開文件之外無法執行任何操作。

使用命令行:

  1. %python myfile.py

請注意,為了使其工作,您需要確保系統“查看”您的文件所在的目錄。 使用'cd'對於找到你的路線非常有用。

  1. %python import myfile myfile.title

此方法稱為打開文件的object.attribute方法。 當您打開的文件具有您想要實現的操作時,此方法很有用。

除了上面提到的方法之外,還有更多方法,請務必查閱pyDocs以獲取更多詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM