Làm thế nào để xác định xem một tập tin là tập tin hoặc thư mục bình thường bằng python


129

Làm thế nào để bạn kiểm tra xem một tập tin là một tập tin bình thường hoặc một thư mục sử dụng python?

Câu trả lời:



36

Như những câu trả lời khác đã nói, os.path.isdir()os.path.isfile()là những gì bạn muốn. Tuy nhiên, bạn cần lưu ý rằng đây không phải là hai trường hợp duy nhất. Sử dụng os.path.islink()cho symlink chẳng hạn. Hơn nữa, tất cả đều trả về Falsenếu tệp không tồn tại, vì vậy bạn cũng có thể muốn kiểm tra os.path.exists().


10

Python 3.4 giới thiệu các pathlibmô-đun vào thư viện chuẩn, cung cấp một cách tiếp cận hướng đối tượng để xử lý đường dẫn hệ thống tập tin. Các phương pháp liên quan sẽ là .is_file().is_dir():

In [1]: from pathlib import Path

In [2]: p = Path('/usr')

In [3]: p.is_file()
Out[3]: False

In [4]: p.is_dir()
Out[4]: True

In [5]: q = p / 'bin' / 'vim'

In [6]: q.is_file()
Out[6]: True

In [7]: q.is_dir()
Out[7]: False

Pathlib cũng có sẵn trên Python 2.7 thông qua mô đun pathlib2 trên PyPi.




2

thử cái này:

import os.path
if os.path.isdir("path/to/your/file"):
    print "it's a directory"
else:
    print "it's a file"

-1

Nếu bạn chỉ bước qua một tập hợp các thư mục, bạn có thể tốt hơn chỉ để thử os.chdirvà đưa ra lỗi / cảnh báo nếu thất bại:

import os,sys
for DirName in sys.argv[1:]:
    SaveDir = os.getcwd()
    try:
        os.chdir(DirName)
        print "Changed to "+DirName
        # Do some stuff here in the directory
        os.chdir(SaveDir)
    except:
        sys.stderr.write("%s: WARNING: Cannot change to %s\n" % (sys.argv[0],DirName))
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.