我编写了以下Python代码:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os, glob
path = '/home/my/path'
for infile in glob.glob( os.path.join(path, '*.png') ):
print infile
Run Code Online (Sandbox Code Playgroud)
现在我明白了:
/home/my/path/output0352.png
/home/my/path/output0005.png
/home/my/path/output0137.png
/home/my/path/output0202.png
/home/my/path/output0023.png
/home/my/path/output0048.png
/home/my/path/output0069.png
/home/my/path/output0246.png
/home/my/path/output0071.png
/home/my/path/output0402.png
/home/my/path/output0230.png
/home/my/path/output0182.png
/home/my/path/output0121.png
/home/my/path/output0104.png
/home/my/path/output0219.png
/home/my/path/output0226.png
/home/my/path/output0215.png
/home/my/path/output0266.png
/home/my/path/output0347.png
/home/my/path/output0295.png
/home/my/path/output0131.png
/home/my/path/output0208.png
/home/my/path/output0194.png
Run Code Online (Sandbox Code Playgroud)
它以哪种方式订购?
它可能会帮助你获得我的ls -l输出:
-rw-r--r-- 1 moose moose 627669 2011-07-17 17:26 output0005.png
-rw-r--r-- 1 moose moose 596417 2011-07-17 17:26 output0023.png
-rw-r--r-- 1 moose moose 543639 2011-07-17 17:26 output0048.png
-rw-r--r-- 1 moose moose 535384 2011-07-17 17:27 …Run Code Online (Sandbox Code Playgroud) 我在XPsp3 w/python 2.7上编写和测试代码.我在2003服务器w/python 2.7上运行代码.我的目录结构看起来像这样
d:\ssptemp
d:\ssptemp\ssp9-1
d:\ssptemp\ssp9-2
d:\ssptemp\ssp9-3
d:\ssptemp\ssp9-4
d:\ssptemp\ssp10-1
d:\ssptemp\ssp10-2
d:\ssptemp\ssp10-3
d:\ssptemp\ssp10-4
Run Code Online (Sandbox Code Playgroud)
在每个目录中,有一个或多个文件将"IWPCPatch"作为文件名的一部分.
在其中一个文件(每个目录中有一个)中,会有一行'IWPCPatchFinal_a.wsf'
我做的是
1)在d:\ ssptemp下穿越所有目录的os.walk
2)在文件名中找到所有带有'IWPCPatch'的文件
3)检查文件内容'IWPCPatchFinal_a.wsf'
4)如果contents为true,我将该文件的路径添加到列表中.
我的问题是在我的XP机器上运行正常.如果我打印出列表的结果,我会按照上面列出的顺序获得几个项目.
当我将它移动到服务器2003机器时,我以不同的顺序获得相同的内容.它来自ssp10-X,然后是ssp9-X.这导致我在程序中的不同区域出现问题.
我可以从我的输出中看到它以错误的顺序开始os.walk,但我不知道为什么会发生这种情况.
import os
import fileinput
print "--createChain--"
listOfFiles = []
for path, dirs, files in os.walk('d:\ssptemp'):
print "parsing dir(s)"
for file in files:
newFile = os.path.join(path,file)
if newFile.find('IWPCPatch') >= 0:
for line in fileinput.FileInput(newFile):
if "IWPCPatchFinal_a.wsf" in line:
listOfFiles.append(newFile)
print "Added", newFile
for item in listOfFiles:
print "list item", item
Run Code Online (Sandbox Code Playgroud)