繁体   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