使用open
的Python版本之间是否存在任何潜在差异。我的脚本接受一个文件,执行一些计算并输出这些计算。
在我的机器上(运行2.7.1)输出正确。在另一台机器上(运行2.4.6),我的输出全是0.00
。我可以告诉,我的输入文件没有被打开。这些版本之间的open()
之间是否存在差异?
这是我目前的开放式计划:
infile = open(filename, 'r')
另一个问题:next(infile)
方法在2.6.4
中不再跳过第一行。将next(infile)
替换为lines = infile.readlines()[1:0]
会影响效果吗?
Edit2:下面是我从文件中读取的代码:
for lines in infile:
# do stuff with lines
infile.close()
我猜这里有些东西可能在2.4.6和2.7.1之间有所不同
最终编辑:
解决了我自己的问题。由于某些奇怪的原因,next(infile)与2.4.6不兼容。我替换它并正确运行我的脚本。
感谢您的帮助!
答案 0 :(得分:1)
我不相信对open
进行了此类更改。
关于问题的后半部分,
lines = infile.readlines()[1:0]
始终为[]
,您可能需要的是lines = infile.readlines()[1:]
。
是的,使用readlines
使用next
时只使用some_thing = next(f)
只读取第一行(如果不执行则丢弃它),将整个文件(确切地说是所有行)加载到内存中{1}})。
如果您正在阅读大文件,则会对性能产生影响。使用一个小文件,它不会产生太大的影响。