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

时间:2016-11-06 04:13:16

标签: python file pep8

我试图稍微清理一下我的代码,而且我很难确定这两种方法中哪一种被认为是最具蟒蛇的方式

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')

一般来说,避免在另一个调用中调用函数是否更好,即使它添加了一行代码?

3 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:1)

file = open('newfile.txt', 'r') 

for line in file:

      print line

OR

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

如果文件很大,read()绝对是个坏主意,因为它将整个文件加载到内存中(没有大小参数)。

如果您的文件太大,这将导致延迟!

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

答案 2 :(得分:0)

有很多方法可以在python中打开文件,这说明确实没有一种真正的pythonic方法。一切都归结为您看到的最合适的方法,特别是关于文件打开后实际上要执行的操作。

大多数用户使用IDLE GUI“单击”来打开文件,因为它允许他们查看当前文件,并且如果需要的话,还可以进行一些更改。

其他人可能仅依靠命令行来执行任务,但代价是无法打开文件以外的其他任何操作。

使用命令行:

  1.   

    %python myfile.py

请注意,要使其正常工作,您需要确保系统 “看上去” 到存储文件的目录中。使用 'cd' 有助于找到您的到达目的地。

  1.   

    %python import myfile myfile.title

此方法称为打开文件的 object.attribute 方法。当您打开的文件具有您要实现的操作时,此方法很有用。

除了上述方法外,还有更多方法,请确保参考pyDocs以获得更多详细信息。