2015-11-02 175 views
1

我想輸入兩個文件具有相同名稱但不同的擴展做的只是一個輸入:輸入兩個文件具有相同名稱但不同的擴展

tkMessageBox.showinfo(title="Info",message="Please input both the .rwh file") 

# the filetype mask (default is all files) 
mask = \ 
[("files","*.rwh"), 
("All files","*.*")] 

title = 'Open'     
files = askopenfilenames(initialdir=self.initial_dir, filetypes=mask,title=title) 

然後我就不說怎麼做的部分。它必須通過讀取文件輸入來創建文件對象,然後通過讀取名稱來創建另一個具有相同名稱但擴展名不同的文件對象(.row)。

後來我調用了一個使用兩個文件對象的函數。

這些文件具有不同的擴展名,因爲它們包含不同的信息,這兩個文件都在同一個文件夾中。

回答

0

將文件名轉換爲字符串並使用str.join()添加文件結尾。

這應該工作,除非文件結尾因案例而異。

2

假設你已經知道一個文件名,例如:

file = 'test.rwh' 

,那麼你根本就與.rowreplace它,其他的文件擴展名:

file.replace('.rwh','.row') 

這給test.row。在具有多個.rwh值,您可以用彼得·伍德的意見或例如使用正則表達式的情況下:

import re 
file = 'test.rwh.rwh' 
re.sub('.rwh$','.row',file) 

回報test.rwh.row

+2

這有可能是文件名可能在'比在結束的其他位置.rwh'。 –

+1

請參閱[從右到左字符串替換](http://stackoverflow.com/questions/9943504/right-to-left-string-replace-in-python),特別是[本答案](http:// stackoverflow的.com /一個/1084416分之9943875)。 –

3

os.path.splitext讓您得到根名稱:

>>> import os 

>>> filename = '/my/filename.rwh' 
>>> root, ext = os.path.splitext(filename) 
>>> root 
'/my/filename' 

>> root + '.row' 
'/my/filename.row' 
相關問題