15

後で別の関数に渡されるコマンドライン引数を処理する定型文を書いています。この他の関数は、すべてのディレクトリ作成を処理します (必要な場合)。したがって、私のbpは、入力文字列有効なディレクトリ、または有効なファイル、または(他のもの)であるかどうかを確認するだけで済みます。つまり、「c:/users/username/」と「c:/users/username/img.jpg」のようなものを区別する必要があります。

def check_names(infile):
    #this will not work, because infile might not exist yet
    import os
    if os.path.isdir(infile):
        <do stuff>
    elif os.path.isfile(infile):
        <do stuff>
    ...

標準ライブラリは解決策を提供していないようですが、理想は次のとおりです。

def check_names(infile):
    if os.path.has_valid_dir_syntax(infile):
        <do stuff>
    elif os.path.has_valid_file_syntax(infile):
        <do stuff>
    ...

入力中に質問について考えた後、文字列にファイル拡張子と末尾のスラッシュ以外のファイルまたはディレクトリが含まれているかどうかを確認する方法を (構文のみに基づいて) 理解できません (どちらも存在しない可能性があります)。 . 私自身の質問に答えたばかりかもしれませんが、誰かが私のとりとめのないことについて考えているなら、投稿してください. ありがとうございました!

4

3 に答える 3

10

お使いの OS はわかりませんが、これの問題は、少なくとも Unix では、拡張子のないファイルを作成できることです。したがって~/foo、ファイルまたはディレクトリのいずれかになります。

あなたが得ることができる最も近いものはこれだと思います:

def check_names(path):
    if not os.path.exists(os.path.dirname(path)):
        os.makedirs(os.path.dirname(path))
于 2013-07-09T21:14:33.563 に答える