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?
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:
os.path.isdir()và os.path.isfile()nên cung cấp cho bạn những gì bạn muốn. Xem:
http://docs.python.org/l Library / os.path.html
Như những câu trả lời khác đã nói, os.path.isdir()và 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().
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()và .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.
import os
if os.path.isdir(d):
print "dir"
else:
print "file"
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))