我想输入两个具有相同名称但扩展名不同的文件,只输入一个:
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 :(得分: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()
添加文件结尾。
除非文件结尾因具体情况而异,否则这应该有效。