繁体   English   中英

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

[英]Python os.listdir() keeps skipping over some files?

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

您可以尝试使用内置排序方法,例如

for line in sorted(os.listdir(d)):
    f.write(line + "\n")

以下是python文档中的一些您可能会发现有用的信息: https//docs.python.org/2/library/os.html

os.listdir(路径)

返回一个列表,其中包含path给出的目录中的条目名称。 该列表按任意顺序排列 它不包括特殊条目'。' 和'..'即使它们存在于目录中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM