あるファイル タイプを別のファイル タイプに変換する 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])
そのため、出力が指定されているかどうかを確認し、指定されていない場合は、正規表現を使用して入力ファイル名を正しい拡張子に変更します。このコードは機能しますが、やや雑であるか、少なくともあまり読みにくいように見えます。.
ファイル名が拡張子の前以外の場所にある場合も壊れます。
これを行うより良い方法はありますか?