У меня есть следующий фрагмент кода Python.Код должен получить исходный, временный и окончательный выходной путь от пользователя и извлечь некоторые заголовочные файлы.Когда полные пути указаны из терминала, программа работает отлично, но когда команда терминала такова:
Python Get-iOS-Private-SDKs.py -p /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/System/Library/PrivateFrameworks/ -t ./tmp -f ./Test.txt
, тогда файлы заголовков вместо того, чтобы генерироваться в папке tmp в текущем каталогеони идут в рекурсивный цикл.Каждая папка, в свою очередь, имеет папку tmp, и она продолжается и включается.Кто-нибудь может сказать мне, почему?
import optparse,os,subprocess
from glob import glob
parser = optparse.OptionParser()
parser.add_option("-p","--path", help = "Source path", dest = "Input_Path", metavar = "PATH")
parser.add_option("-t","--temp",help = "Temporary Folder Path", dest = "Temp_Path", metavar = "PATH")
parser.add_option("-f","--file",help = "Destination Path",dest ="Output_Path",metavar = "PATH")
(opts,args) =parser.parse_args()
if (opts.Input_Path is None or opts.Output_Path is None or opts.Temp_Path is None):
print "Error: Please specify the necessary paths"
else:
os.makedirs(opts.Temp_Path + "Private_SDK")
dest = opts.Temp_Path + "Private_SDK/"
for root,subFolders,files in os.walk(opts.Input_Path):
for file in files:
os.makedirs(dest + file)
os.chdir(dest + file)
command = ['/opt/local/bin/class-dump','-H',os.path.join(root,file)]
subprocess.call(command)
Папка также не создается как Private_SDK, она создается как tmpPrivate_SDK.В принципе, если я могу получить полный путь от терминала, когда упоминается ./tmp, я могу заставить программу работать!