2014-02-20 95 views
1

我想重命名文件,即使新名稱存在,沒關係,它可以覆蓋它。在Python中強制重命名文件

my_location = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) 
for filename in os.listdir(my_location + "/static/data/bandsdaily/"): 
    if filename.endswith(".json"): 
     source = filename  
     destination = filename + ".old" 

     print source, destination 
     os.rename(source, destination) 

我一直有這個錯誤:

20022014.json 20022014.json.old 
Traceback (most recent call last): 
    File "app/bandsdaily.py", line 89, in <module> 
    os.rename(source, destination) 
OSError: [Errno 2] No such file or directory 

什麼建議嗎?

回答

1

os.listdir()返回只是的文件名,而不是完整的路徑。您正嘗試重命名當前工作目錄中的文件,而不是my_location +/static/data/bandsdaily /`。前面加上路徑:

path = os.path.join(my_location, "static/data/bandsdaily") 
for filename in os.listdir(path): 
    if filename.endswith(".json"): 
     source = filename  
     destination = filename + ".old" 

     print source, destination 
     os.rename(os.path.join(path, source), os.path.join(path, destination)) 
+0

非常感謝(PS:'os.rename(os.path.join(路徑,源),os.path.join(路徑,目的地))') – 4m1nh4j1

+0

@ 4m1nh4j1:哎呦, 謝謝。 –