私はpy2exeで実行可能ファイルに変換されたPython 2.7のスクリプトを持っています。INPUT データは、この関数に続いて区切り文字が有効である必要があるテキスト ファイルです。
# Check if delimeter is valid
def get_parse(filename, delimiters=['\t', ',', ' ', ':', ';', '-']):
with open(filename) as f:
f.next()
secondline = f.next()
for delimiter in delimiters:
if len(secondline.rstrip().split(delimiter)) >= 3:
return delimiter
raise Exception("couldn't find a delimiter that worked!")
区切り文字が有効でない場合 (例: ドット)、Python のエレガントな方法で 2 つのソリューションを探しています。
- 正しい INPUT データがロードされない限り、OUTFILE に渡すことはできません
また
- スクリプトはコードを壊し、エラーを表示しますが、ウィンドウ (*.exe の場合) がすぐに閉じず、ユーザーに説明がありません。
INPUT = raw_input("Input (*.txt): ")
while not os.path.exists(INPUT):
print IOError("No such file or directory: %s" % INPUT)
INPUT = raw_input("Input (*.txt): ")
try:
parse = get_parse(INPUT)
except Exception:
print ValueError("Delimiter type not valid")
break
OUTPUT = raw_input("Output (*.txt): ")
この解決策 (中断) を使用すると、*.exe ファイルのウィンドウが閉じて、ユーザーは説明なしで終了します。