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

What is the most pythonic way to open a file?

我正在尝试稍微清理一下我的代码,但我无法确定这两种方式中哪一种被认为是最符合 Python 风格的方式

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 "click" 打开文件,因为它允许他们查看当前文件并在需要时进行一些更改。

其他人可能只是依赖命令行来执行任务,代价是除了打开文件之外无法执行任何操作。

使用命令行:

  1. % python myfile.py

请注意,为了使其正常工作,您需要确保系统 "looking" 进入目录你的档案是有故事的。使用 'cd' 有助于找到你的路线。

  1. % python import myfile myfile.title

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

除了上面提到的方法之外,还有更多方法,请务必查阅 pyDocs 以了解更多详细信息。