2

「ファイルが読み取り可能かどうかを検出する」Python スクリプトを作成する割り当てがあります。

どの例外を実行する必要があるかについて行き詰まっています。入力ファイルは、拡張子が .*.txt

発生させるべき例外は何ですか? 複数あってもいいと思います。現時点では、私は持っています:

with open('example_file.txt") as textfile:
        if not textfile.lower().endswith('.txt'):
            raise argparse.ArgumentTypeError(
                'Not a text file! Argument filename must be of type *.txt')
        return textfile

ただし、それはファイル拡張子のみをチェックします。他に何を確認できますか?Python のファイル I/O の標準は何ですか?

4

1 に答える 1

4

ファイルが存在するかどうかを確認するには:

import os.path
if os.path.exists('example_file.txt'):
    print('it exists!')

これを超えてopen、ファイルを正常に ing すると、読みやすさが実証されます。ビルトインは、失敗openするIOErrorと例外を発生させます。失敗は複数の理由で発生する可能性があるため、可読性が原因で失敗したかどうかを確認する必要があります。

import errno
try:
    textfile = open('example_file.txt', 'r')
    textfile.close()
    print("file is readable")
except IOError as e:
    if e.errno == errno.EACCES:
        print("file exists, but isn't readable")
    elif e.errno == errno.ENOENT:
        print("files isn't readable because it isn't there")

ファイルのアクセス許可に関するドキュメントの関連セクション。os.accessを呼び出す前に可読性をチェックするために を使用することopenはお勧めできません。

于 2015-12-13T22:40:13.000 に答える