【发布时间】:2015-02-12 18:09:36
【问题描述】:
我正在尝试制作一个将一种文件类型转换为另一种文件类型的 python 脚本,我希望可以选择指定一个输出文件,但默认情况下只是更改默认文件名的扩展名。
例如:我希望convert('foo.gb') 输出foo.faa,但convert('foo.gb', 'bar.faa') 输出bar.faa
我的实现方式是:
#!/usr/bin/env python
def convert(inputFile, outputFile = None):
[code that converts data]
if not outputFile:
import re
name = re.match('(.+)\.\w+', inputFile)
outputFile = './{0}.faa'.format(name.group(1))
with open(outputFile, 'w+') as outFaa:
outputFaa.write([stuff to write])
因此,它检查是否指定了输出,如果没有指定,则使用正则表达式更改输入文件名以具有正确的扩展名。这段代码有效,但似乎有些草率,或者至少不是很可读。如果文件名在扩展名之前以外的任何地方都有.,它也会中断,它有时可能会有。
有没有更好的方法来做到这一点?
【问题讨论】:
标签: python bash function default-arguments