【发布时间】:2012-12-02 21:22:07
【问题描述】:
使用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] 会影响性能吗?
编辑:废话另一台机器的版本是 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 不兼容。我替换了它并正确运行了我的脚本。
感谢您的帮助!
【问题讨论】:
-
它不太可能与
open(..)函数有关,您应该发布计算代码的详细信息(发行说明的完整列表为here)。例如 this answer 提到round(..)在 2.7 中已修复。 -
如果你有两个不同的问题,你应该问两个不同的问题:)。检查性能的一种简单方法是在 ipython 中使用
%timeit thing_to_test... -
我猜这是数据文件的问题。 Python 在 2.6 和 2.7 之间没有显着改变,如果您使用的是 2.6 中没有的仅 2.7 功能,它可能会抱怨,而不是默默地给您错误的答案。
-
我需要它工作的机器版本是 2.4.6。我很抱歉。修改反映了我的错误。
-
@AndreHolzner 添加了更多代码
标签: python