相关疑难解决方法(0)

如何命令Pythons glob.glob?

我编写了以下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)

python

170
推荐指数
9
解决办法
10万
查看次数

python根据平台以不同的顺序列出dirs

我在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)

python os.walk

10
推荐指数
2
解决办法
7135
查看次数

标签 统计

python ×2

os.walk ×1