2015-04-05 126 views
0

我想從Python 2.7.3目錄特定的路徑中刪除任何給定的文件擴展名。如果您從開始指定實際文件,則os.path.splitext返回擴展名。但我想將腳本放在一個目錄中,並使用os.list.dir來查看目錄。我找不到如何實際刪除文件擴展名。說如果它返回'foo.png'我怎樣才能永久刪除「.png」擴展名?我認爲os.remove(file_name_extension)可能會有所幫助,但在這種情況下似乎並不存在從目錄中刪除文件擴展名dir

這就是我迄今爲止的測試結果。

def main(): 
    folder_path = sys.argv[1] 
    for file in os.listdir(folder_path): 
     current = os.path.join(folder_path, file) 

    print "\n\t%s" % file 

因此,這是工作正常打印屏幕文件及其擴展名在指定的目錄。 我怎麼能夠然後操縱文件的擴展名永久刪除它?

感謝

回答

0

我能夠得到我想要的結果,下面是一些代碼,爲我的私人項目做了 工作。雖然這可能是可怕的,但它確實是從迂迴的方式發生的。

if extension == ".png": 

    folder_path_length = len(folder_path)+1 
    extension = len(file)-4 + folder_path_length 
    filename = file[:extension] 

    os.rename(current, current[:extension]) 

    extension = len(file)-4 
    truncated_filename = file[:extension] 

    print "\n\t%s \n\tnow renamed to: %s" % (filename, truncated_filename) 

    files_renamed_count +=1 
0

如果你想要的文件的路徑和名稱不帶擴展名,那麼你可以簡單地使用os.path.splitext(current)[0]到例如轉path/to/foobar.txt分成path/to/foobar。如果您只是想的名稱,而不是完整的路徑(不包括擴展名),你可以使用os.path.basename

os.path.splitext(os.path.basename(current))[0] 

path/to/foobar.txt逼到foobar