Я пишу и тестирую код на XPsp3 с python 2.7.Я бегу код на 2003 сервере с 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
Внутри каждого каталога есть один или несколько файлов, которые будут иметь "IWPCPatch" как часть имени файла.
Внутри одного из этих файлов (по одному в каждом каталоге), там будет строка 'IWPCPatchFinal_a.wsf'
Что я делаю, это
1) os.walk по всем каталогам в d: \ ssptemp
2) найти все файлы с 'IWPCPatch' в имени файла
3) проверить содержимое файла для 'IWPCPatchFinal_a.wsf'
4) Если содержимое равно 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