0
我編寫了一個小應用程序,該應用程序通過鏈接提供一個zip文件(具有不同的擴展名),並將文件提取到重命名的文件夾。 出於某種原因,它爲我的一些zip文件工作,但不是爲他們所有。提取一些zip文件的Python錯誤
我得到一個:
Traceback (most recent call last):
File "download_unzip.py", line 48, in <module>
main()
File "download_unzip.py", line 42, in main
shutil.move(unzip_file(temp_kmz),'temp_extracted/')
File "download_unzip.py", line 26, in unzip_file
fd = open(name, 'w')
IOError: [Errno 2] No such file or directory: 'models/model.dae'
我的代碼是:
import sys , urllib , zipfile , os.path , argparse , shutil
parser = argparse.ArgumentParser(description="Download and Unzip")
parser.add_argument('url', help='The action to take (e.g. install, remove, etc.)')
args = parser.parse_args()
print args.url
url = args.url
temp_kmz="temp_kmz"
def unzip_file(path):
zfile = zipfile.ZipFile(path)
extracted_filename = zfile.infolist()[0].filename[:-1]
for name in zfile.namelist():
(dirname, filename) = os.path.split(name)
#print "Decompressing " + filename + " on " + dirname
if filename == '':
# directory
if not os.path.exists(dirname):
os.mkdir(dirname)
else:
# file
fd = open(name, 'w')
fd.write(zfile.read(name))
fd.close()
zfile.close()
return extracted_filename
def download_file():
urllib.urlretrieve (url, temp_kmz)
return True
def main():
if (download_file()):
print "Now deleting temp..."
shutil.rmtree('temp_extracted/')
print "unzipping.. and renaming folder"
shutil.move(unzip_file(temp_kmz),'temp_extracted/')
print "Finished!!"
else:
print "Error downloading file"
main()
我的工作下載的文件:
蟒蛇download_unzip.py 「http://dl.dropbox.com/u/2971439/dae.kmz」
不工作的一個:
蟒蛇download_unzip.py 「http://dl.dropbox.com/u/2971439/rally_car_youbeq.kmz」
請注意,這兩個文件與我的OS提取正常(Ubuntu的)
我看到很多東西g與你的代碼。對於初學者來說,'unzip_file()'函數傳遞給zip檔案文件名並嘗試從其中提取_all_文件,但是隻返回第一個文件的名字和最後一個字符被刪除(所以它是無效的,這將導致以下'shutil.move()'調用失敗)。另外,請不要只說一些「不起作用」的東西。至少詳細描述你的問題中發生的任何回溯。基本的想法是幫助我們幫助你。 – martineau 2013-02-23 00:17:41
我拿出最後一個字符,因爲它是「/」,我認爲最好刪除它。反正它不起作用,即使我離開它。關於回溯,如果你看到代碼的第一部分,你會看到它的;) – psychok7 2013-02-25 09:57:35
我只是解壓縮文件,並使用路徑來閱讀文件夾,如果你需要幫助路徑點擊這裏>>> http: //stackoverflow.com/questions/3701646/how-to-add-to-the-pythonpath-in-windows-7 <<< – Jordanian 2013-12-17 19:30:01