我已为一个给定目录编写了一个Python脚本,将所有文件名写入文件以供处理,它在我的机器上完美运行。但是当我尝试在目标机器上运行它时,它会跳过一些文件。以下是我正在使用的代码壳:
但是目标系统的输出看起来像这样:
我在一台安装了Python 2.7.5的64位Windows PC上运行Cygwin。目标系统是一台运行OpenSUSE操作系统的Cray XK7,它安装了Python 2.6.8版本。这可能是两个不同Python版本之间的差异,还是两个不同操作系统之间的差异?
for line in os.listdir(d):
f.write(line + "\n")
正如我所说,这在我的系统上按照广告宣传的方式工作,但在目标系统上却不行。数据是相同的;我在编写脚本时将其从目标系统转移到我的系统进行初步测试,并检查了两个数据源以验证在传输过程中是否丢失了任何内容。来自我的系统的输出如下:
filename.f0000
filename.f0001
filename.f0002
filename.f0003
...
但是目标系统的输出看起来像这样:
filename.f0000
filename.f0003
filename.f0008
filename.f0017
...
我在一台安装了Python 2.7.5的64位Windows PC上运行Cygwin。目标系统是一台运行OpenSUSE操作系统的Cray XK7,它安装了Python 2.6.8版本。这可能是两个不同Python版本之间的差异,还是两个不同操作系统之间的差异?
for line in sorted(os.listdir(d))
。该方法可对文件列表进行排序,使其更加有序。 - Mariattaos.listdir()
的结果顺序通常是底层文件系统中目录条目的原始顺序;该顺序取决于文件系统实现,可以取决于文件创建的顺序(以及其他因素)。 - Adam Rosenfield