Python os.listdir()一直在跳过一些文件?

时间:2014-07-09 21:24:04

标签: python shell scripting

我编写了一个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之间的区别,还是两个不同的操作系统?

1 个答案:

答案 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;即使他们出现在   。目录