输入两个名称相同但扩展名不同的文件

时间:2015-11-02 11:08:10

标签: python file

我想输入两个具有相同名称但扩展名不同的文件,只输入一个:

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)。

之后我调用一个使用两个文件对象的函数。

文件具有不同的扩展名,因为它们包含不同的信息,两个文件都在同一个文件夹中。

3 个答案:

答案 0 :(得分:3)

os.path.splitext允许您获取根名称:

>>> import os

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

>> root + '.row'
'/my/filename.row'

答案 1 :(得分:2)

假设您已经知道一个文件名,例如:

file = 'test.rwh'

然后你只需replace .row,其他文件扩展名为

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

这给了test.row。如果有多个.rwh值,您可以使用Peter Wood的评论或使用例如正则表达式:

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

返回test.rwh.row

答案 2 :(得分:0)

将文件名转换为字符串,并使用str.join()添加文件结尾。

除非文件结尾因具体情况而异,否则这应该有效。