使用open的Python版本问题

时间:2012-12-02 21:22:07

标签: python

使用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]会影响效果吗?

编辑:CRAP其他机器的版本是2.4.6。不知道我是怎么搞砸的。原来的帖子反映了我的搞砸,抱歉的家伙们。

Edit2:下面是我从文件中读取的代码:

     for lines in infile:
          # do stuff with lines
     infile.close()

我猜这里有些东西可能在2.4.6和2.7.1之间有所不同

最终编辑:

解决了我自己的问题。由于某些奇怪的原因,next(infile)与2.4.6不兼容。我替换它并正确运行我的脚本。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我不相信对open进行了此类更改。

关于问题的后半部分,

lines = infile.readlines()[1:0]始终为[],您可能需要的是lines = infile.readlines()[1:]

是的,使用readlines使用next时只使用some_thing = next(f)只读取第一行(如果不执行则丢弃它),将整个文件(确切地说是所有行)加载到内存中{1}})。

如果您正在阅读大文件,则会对性能产生影响。使用一个小文件,它不会产生太大的影响。