2016-05-14 23 views
0

ユーザー入力時に、適切なファイル拡張子を入力したことを検証しようとしています。例:有効なファイル拡張子を確認してください

file1 = input('Enter the file name ending in ".txt": ') 

「.txt」と入力したことを検証したいと思います。今私は非常に基本的なチェックをしています。しかし、以下のチェックでは、ファイルが.txtで終わることを実際に検証するわけではありません。

if '.txt' not in file_name: 
    print('Include file extension (example): ".txt"') 

だから、 'txt'という文字が '。'の後にのみ存在すると仮定します。それが最終的なものである場合に限ります。例えば、私はbaby.dinosoars.txtの "dinosoars"を間違って捉えたくありません。

+1

Python 3.xで 'ends_with'の代わりに' endswith'と 'print'に括弧が必要ですが、[ファイルの拡張子の確認](http://stackoverflow.com/questions/5899497/checking-file-extension)の –

答えて

2

、あなたはendswith使用することができます。

if s.endswith('.txt'): 
... 
elif s.endswith('.test'): 
... 

または大文字と小文字を区別しないバージョンを(および任意の他の-IFチェーンを排除する)

s.lower().endswith(('.png', '.jpg', '.jpeg')) 
1

なぜを使用しないのですか?あなたは、文字列sにあなたのファイル名を作成する場合

if not file_name.endswith(extension): 
    #exec code 
1

これは動作するはずです:

if file_name.endswith(".txt"): 
    print "something" 
+0

と重複しています – Pythonista

関連する問題