Skip to main content
 首页 » 编程设计

python之没有这样的文件或目录,奇怪还是什么

2025年05月04日8zdz8207

所以,

我一直在编写一个下载器,每次运行它时,它都会说:

Traceback (most recent call last): 
  File "C:\Python27\Downloader.py", line 7, in <module> 
    f = open('c:\\users\%USERNAME%\AppData\Roaming\.minecraft\mods\CreeperCraft.zip', 'wb+') 
IOError: [Errno 2] No such file or directory: 'c:\\users\\%USERNAME%\\AppData\\Roaming\\.minecraft\\mods\\CreeperCraft.zip' 

我现在,您可能会说,创建一个文件,但我希望脚本创建该文件。

那么,有人可以告诉我要修复什么吗?这是代码:

import urllib2 
import os 
import shutil 
url = "https://dl.dropbox.com/u/29251693/CreeperCraft.zip" 
file_name = url.split('/')[-1] 
u = urllib2.urlopen(url) 
f = open('c:\\users\%USERNAME%\AppData\Roaming\.minecraft\mods\CreeperCraft.zip', 'wb+') 
meta = u.info() 
file_size = int(meta.getheaders("Content-Length")[0]) 
print "Downloading: %s Bytes: %s" % (file_name, file_size) 
file_size_dl = 0 
block_sz = 8192 
while True: 
    buffer = u.read(block_sz) 
    if not buffer: 
        break 
    file_size_dl += len(buffer) 
    f.write(buffer) 
    status = r"%10d  [%3.2f%%]" % (file_size_dl, file_size_dl * 100. / file_size) 
    status = status + chr(8)*(len(status)+1) 
    print status, 
f.close() 

请您参考如下方法:

问题是 python 没有意识到您正在使用 %USERNAME% 来引用环境变量,因此 python 按字面意思解释它。你必须通过这样做告诉 python 它是一个环境变量:

替换

f = open('c:\\users\\%USERNAME%\\AppData\\Roaming\\.minecraft\\mods\\CreeperCraft.zip', 'wb+') 

与

import os 
f = open(os.path.expandvars('c:\\users\\%USERNAME%\\AppData\\Roaming\\.minecraft\\mods\\CreeperCraft.zip'), 'wb+')