2012-12-26 42 views
0

我想使用raw_input重命名一個文件。但是,當我改變它,它給新的名稱沒有文件類型的正確結尾。所以我試圖加入,但它不起作用。 幫助感謝!使用原始輸入創建os.path.join

import os 
Base_TXT =r"C:\file.txt" 
rename = raw_input('Would you like to rename the txt?') 
if rename == 'yes': 
    new_name = raw_input('What is the new name?') 
    os.rename(Base_TXT, new_name) 
    os.path.join(new_name, '.txt') 

else: 
    print "no rename made" 

print "done" 
+0

到'os.rename'調用不實際的重命名,所以當你這樣做,你叫'os.path.join'之前,重命名將不包括'os.path.join'的結果。 –

+1

另外,我不認爲'os.path.join'按你認爲的方式工作 - 我建議閱讀[documentation](http://docs.python.org/2/library/os.path。 html#os.path.join)來確保你明白它在做什麼。 –

+0

'os.path.join(「somefilename」,「.txt」)'產生'somefilename/.txt'。 'os.path.join()'只是使用正確的路徑分隔符('/'爲基於unix的系統加入路徑名,'\'爲windows,...)。 –

回答

2

簡單的解決方案,如果總是「.txt」是您使用的文件。

os.rename(Base_TXT, new_name + ".txt") 

其他的事情:如果你不想在你的腳本運行的文件夾重命名的文件(您想在地方重命名),你需要建立目標更好。

if rename == 'yes': 
    new_name = raw_input('What is the new name?') 

    dir_name = os.path.dirname(Base_TXT) 

    destination = os.path.join(dir_name, new_name + ".txt") 

    os.rename(Base_TXT, destination)