1

私は、ユーザーに継続的にデータ ファイル名を尋ね、それらのファイルをグラフ化することを主な目的とするプログラムを作成しました。ただし、これらのファイルは設計上、さまざまなディレクトリに存在します。私は、標準的なスタイルでナビゲートできると便利だと判断しましたcd。これにより、ユーザーは、上記のディレクトリを簡単に入力して、必要なファイルを選択できます。

私はPythonに慣れていない(そして現在2.7を使用している)ので、これをうまく実装していない可能性がありますが、次のコードは現在私のコードです:

import os

...

userinput = raw_input('What would you like to do: ').lower()
if userinput.startswith('cd '):
    try:
        newdir = userinput.split('cd ')[1]
        os.chdir(newdir)
        print(os.getcwd()+'\n')
    except:
        print('Not a valid directory.\n')

これは、ユーザー入力がcd .... ピリオドが 2 つ以外の数になるとすぐに、エラーはスローされず (try/except なしでこれを実行しました)、プログラムは現在のディレクトリに残ります (移動するのではなく、既にあった場所を出力します)。exceptステートメントの部分に)。

大まかに言えば、タイプミスを防ぐだけなので、これは大したことではありませんが、ここで何が起こっているのか疑問に思っています。ありがとう!

4

2 に答える 2

2

Python は何も間違ったことをしていませ

于 2014-05-05T20:19:00.623 に答える
0

正規表現を使用して、3 つ以上のドットを ../ のコレクションに変換できます。何かのようなもの:

userinput = re.sub('\.\.\.+', lambda x: os.path.join(*['..']*(len(x.group(0))-1)), userinput)
于 2014-05-05T20:40:09.407 に答える