我编写了一个Python脚本,用于将给定目录中的所有文件名写入文件进行处理,并且它在我的机器上运行良好。但是当我尝试在目标机器上运行它时,它会跳过一些文件。这是我正在使用的代码的shell:
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
...
我在运行Cygwin的64位Windows PC上安装了Python 2.7.5版本。目标系统是运行OpenSuse的Cray XK7,它安装了Python 2.6.8版。
这可能是两个版本的Python之间的区别,还是两个不同的操作系统?
答案 0 :(得分:3)
您可以尝试使用内置排序方法,例如
for line in sorted(os.listdir(d)):
f.write(line + "\n")
以下是您可能会发现有用的python文档中的更多信息: https://docs.python.org/2/library/os.html
<强> os.listdir(路径)强>
返回包含目录中条目名称的列表 由路径给出。 列表按任意顺序。它不包括 特殊条目&#39;。&#39;和&#39; ..&#39;即使他们出现在 。目录