2017-06-04 3 views
0

私はこの単純なことが非常に直感的ではない理由を理解していません。Pythonが開くファイルの名前のユーザ入力を渡します

これは私がこれまでにしたものである:

`if file.startswith(filename):`? 

print("Enter name of file on Desktop:") 
    filename = sys.stdin.readline() 


    directory = os.path.join(os.path.expanduser("~"),"Desktop") 
     for subdir, dirs, files in os.walk(directory): 
      for file in files: 
       if file.startswith(filename): 
        f = open(os.path.join(subdir, file),'r+', encoding="Latin-1") 
        data = f.read() 
        print(data) 
        f.close() 

は、なぜ私は「もし」ステートメントに変数名 に割り当てられていたsys.stdinをを渡すことはできません

は、私が試した:

if file.startswith(str(filename)): 
    if file.startswith("'" + filename + "'") 
    if file.startswith(filename): 

オプションなしは「通過」しているようだとエラーがポップアップしません。

私は何も渡さなかったように見せかけるだけです。どんな助け?ありがとう。

+0

フォーマットコード:適切な名前input機能を使用してください。小さなコードに対しては、バックティックだけを使用してください。 – Carcigenicate

+0

また、エラーが出たら、投稿する必要があります – Carcigenicate

答えて

2

stdinまたはファイルから読み込んだ行に改行文字が含まれています。あなたのファイル名のいずれかが改行で終わることはほとんどありません。

ただし、ユーザーからの入力を得るためにsys.stdin.readlineを使用しないでください。 4つのスペースでインデントによって

filename = input("Enter name of file on Desktop:") 

(Pythonの2.xの中であなたがraw_inputではなくinputを使用する必要があり、注意してください)

+0

私はそれが何かばかげたことを知っていました。ありがとう。私はそれを働かせました。 –

関連する問題