Các hệ điều hành như Windows, Linux hoặc macOS có các cấu trúc đường dẫn khác nhau trong đó các tệp hệ điều hành được lưu trữ
Do đó, khi bạn chạy tập lệnh Python trên các máy này và muốn tìm nạp tệp hoặc thư mục, bạn muốn tự động tìm đường dẫn tuyệt đối của tệp so với thư mục hiện tại thay vì mã hóa cứng nó cho mọi hệ thống
Đường dẫn tuyệt đối còn được gọi là đường dẫn đầy đủ và bắt đầu bằng /
trong Linux và macOS và C:/
trên Windows
Để tìm một đường dẫn tuyệt đối trong Python, bạn nhập mô-đun os
, sau đó bạn có thể tìm thấy thư mục làm việc hiện tại bằng cách sử dụng os.path.abspath["insert-file-name-here"]
trong tập lệnh Python của mình
Mục lục
1Đường dẫn tuyệt đối trong Python là gì?
Đường dẫn tuyệt đối trong Python là đường dẫn đầy đủ bắt đầu từ thư mục gốc của hệ thống tệp điều hành cho đến thư mục làm việc
Vì vậy, giả sử bạn chạy mã Python của mình trong /Users/dannysteenman/home/projects/example-project/app.py
. Đây là điểm vào nơi bạn chạy mã cấp cao nhất của mô-đun python của mình
Sau đó, đây là đường dẫn tuyệt đối của thư mục làm việc của bạn /Users/dannysteenman/home/projects/example-project/
Cách tìm đường dẫn tuyệt đối trong Python
Như đã đề cập ở đầu bài viết này, bạn có thể chạy ứng dụng Python của mình trên các hệ điều hành khác nhau, do đó bạn muốn tự động tìm đường dẫn đầy đủ của tệp bạn muốn nhập trong mã của mình thay vì mã hóa cứng nó
Vì vậy, với một đường dẫn chẳng hạn như "src/examplefile.txt"
, làm thế nào để bạn tìm thấy đường dẫn tuyệt đối của tệp so với thư mục làm việc hiện tại [/Users/dannysteenman/home/projects/example-project/
] trong Python?
Để có được đường dẫn tuyệt đối trong Python, bạn viết đoạn mã sau
import os
os.path.abspath["src/examplefile.txt"]
Để giải thích mã Python. trước tiên, bạn phải nhập mô-đun os
bằng Python để bạn có thể chạy các chức năng của hệ điều hành trong mã của mình
Sau đó, bạn sử dụng thư viện
/Users/dannysteenman/home/projects/example-project/src/examplefile.txt
1 để trả về phiên bản chuẩn hóa tuyệt đối của đường dẫn tên đường dẫnĐiều này sẽ dẫn đến đầu ra sau
/Users/dannysteenman/home/projects/example-project/src/examplefile.txt
Phần kết luận
Như bạn có thể thấy, đường dẫn tuyệt đối giúp bạn tìm đường dẫn đầy đủ của tệp hoặc thư mục so với thư mục làm việc hiện tại. Điều này rất hữu ích vì bạn có thể linh hoạt tìm tệp hoặc thư mục và trả về đường dẫn chính xác trên các hệ điều hành khác nhau
Để có đường dẫn tuyệt đối trong Python, bạn sử dụng thư viện
/Users/dannysteenman/home/projects/example-project/src/examplefile.txt
2. Chèn tên tệp của bạn và nó sẽ trả về đường dẫn đầy đủ tương đối từ thư mục làm việc bao gồm tệp Có hai mô-đun chính trong Python xử lý thao tác đường dẫn. Một là mô-đun
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
4 và mô-đun kia là mô-đun >>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
5hệ điều hành. đường dẫn VS pathlib
Mô-đun `pathlib` đã được thêm vào Python 3. 4, cung cấp một cách hướng đối tượng để xử lý các đường dẫn hệ thống tệp
Đường dẫn Linux và Windows
Trên Windows, các đường dẫn được viết bằng dấu gạch chéo ngược [
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
6] làm dấu phân cách giữa các tên thư mục. Trên hệ điều hành dựa trên Unix như macOS, Linux và BSD, dấu gạch chéo lên [>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
7] được sử dụng làm dấu phân cách đường dẫn. Tham gia các đường dẫn có thể gây đau đầu nếu mã của bạn cần hoạt động trên các nền tảng khác nhauMay mắn thay, Python cung cấp những cách dễ dàng để xử lý việc này. Chúng tôi sẽ giới thiệu cách đối phó với cả hai,
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
8 và >>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
9Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
8 trên Windows>>> import os
>>> os.path.join['usr', 'bin', 'spam']
# 'usr\\bin\\spam'
Và sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
5 trên *nix>>> from pathlib import Path
>>> print[Path['usr'].joinpath['bin'].joinpath['spam']]
# usr/bin/spam
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
5 cũng cung cấp lối tắt đến đường nối bằng cách sử dụng toán tử >>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
7>>> from pathlib import Path
>>> print[Path['usr'] / 'bin' / 'spam']
# usr/bin/spam
Lưu ý rằng dấu tách đường dẫn khác nhau giữa hệ điều hành dựa trên Windows và Unix, đó là lý do tại sao bạn muốn sử dụng một trong các phương pháp trên thay vì thêm các chuỗi lại với nhau để nối các đường dẫn với nhau
Tham gia các đường dẫn rất hữu ích nếu bạn cần tạo các đường dẫn tệp khác nhau trong cùng một thư mục
Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
8 trên Windows>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
5 trên *nix>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> home = Path.home[]
>>> for filename in my_files:
... print[home / filename]
...
# /home/asweigart/accounts.txt
# /home/asweigart/details.csv
# /home/asweigart/invite.docx
Thư mục làm việc hiện tại
Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> home = Path.home[]
>>> for filename in my_files:
... print[home / filename]
...
# /home/asweigart/accounts.txt
# /home/asweigart/details.csv
# /home/asweigart/invite.docx
6 trên Windows>>> import os
>>> os.getcwd[]
# 'C:\\Python34'
>>> os.chdir['C:\\Windows\\System32']
>>> os.getcwd[]
# 'C:\\Windows\\System32'
Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
5 trên *nix>>> from pathlib import Path
>>> from os import chdir
>>> print[Path.cwd[]]
# /home/asweigart
>>> chdir['/usr/lib/python3.6']
>>> print[Path.cwd[]]
# /usr/lib/python3.6
Tạo thư mục mới
Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> home = Path.home[]
>>> for filename in my_files:
... print[home / filename]
...
# /home/asweigart/accounts.txt
# /home/asweigart/details.csv
# /home/asweigart/invite.docx
6 trên Windows>>> import os
>>> os.makedirs['C:\\delicious\\walnut\\waffles']
Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
5 trên *nix>>> from pathlib import Path
>>> cwd = Path.cwd[]
>>> [cwd / 'delicious' / 'walnut' / 'waffles'].mkdir[]
# Traceback [most recent call last]:
# File "", line 1, in
# File "/usr/lib/python3.6/pathlib.py", line 1226, in mkdir
# self._accessor.mkdir[self, mode]
# File "/usr/lib/python3.6/pathlib.py", line 387, in wrapped
# return strfunc[str[pathobj], *args]
# FileNotFoundError: [Errno 2] No such file or directory: '/home/asweigart/delicious/walnut/waffles'
Ồ không, chúng tôi đã gặp một lỗi khó chịu. Lý do là thư mục 'ngon' không tồn tại, vì vậy chúng tôi không thể tạo các thư mục 'quả óc chó' và 'bánh quế' trong đó. Để khắc phục điều này, hãy làm
>>> from pathlib import Path
>>> cwd = Path.cwd[]
>>> [cwd / 'delicious' / 'walnut' / 'waffles'].mkdir[parents=True]
Và tất cả đều tốt. ]
tuyệt đối so với. đường dẫn tương đối
Có hai cách để chỉ định đường dẫn tệp
- Một đường dẫn tuyệt đối, luôn bắt đầu với thư mục gốc
- Một đường dẫn tương đối, có liên quan đến thư mục làm việc hiện tại của chương trình
Ngoài ra còn có các thư mục dot [
>>> import os
>>> os.getcwd[]
# 'C:\\Python34'
>>> os.chdir['C:\\Windows\\System32']
>>> os.getcwd[]
# 'C:\\Windows\\System32'
0] và dot-dot [>>> import os
>>> os.getcwd[]
# 'C:\\Python34'
>>> os.chdir['C:\\Windows\\System32']
>>> os.getcwd[]
# 'C:\\Windows\\System32'
1]. Đây không phải là những thư mục thực, mà là những tên đặc biệt có thể được sử dụng trong một đường dẫn. Một dấu chấm ["dấu chấm"] cho tên thư mục là cách viết tắt của "thư mục này. ” Hai dấu chấm [“chấm-chấm”] có nghĩa là “thư mục mẹ. ”Xử lý đường dẫn tuyệt đối
Để xem nếu một đường dẫn là một đường dẫn tuyệt đối
Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
4 trên *nix>>> from pathlib import Path
>>> print[Path['usr'].joinpath['bin'].joinpath['spam']]
# usr/bin/spam
0Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
5 trên *nix>>> from pathlib import Path
>>> print[Path['usr'].joinpath['bin'].joinpath['spam']]
# usr/bin/spam
1Bạn có thể trích xuất một đường dẫn tuyệt đối với cả
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
4 và >>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
5Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
4 trên *nix>>> from pathlib import Path
>>> print[Path['usr'].joinpath['bin'].joinpath['spam']]
# usr/bin/spam
2Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
5 trên *nix>>> from pathlib import Path
>>> print[Path['usr'].joinpath['bin'].joinpath['spam']]
# usr/bin/spam
3Xử lý đường dẫn tương đối
Bạn có thể nhận được một đường dẫn tương đối từ một đường dẫn bắt đầu đến một đường dẫn khác
Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
4 trên *nix>>> from pathlib import Path
>>> print[Path['usr'].joinpath['bin'].joinpath['spam']]
# usr/bin/spam
4Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
5 trên *nix>>> from pathlib import Path
>>> print[Path['usr'].joinpath['bin'].joinpath['spam']]
# usr/bin/spam
5Tính hợp lệ của đường dẫn và tệp
Kiểm tra xem tệp/thư mục có tồn tại không
Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
4 trên *nix>>> from pathlib import Path
>>> print[Path['usr'].joinpath['bin'].joinpath['spam']]
# usr/bin/spam
6Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
5 trên *nix>>> from pathlib import Path
>>> print[Path['usr'].joinpath['bin'].joinpath['spam']]
# usr/bin/spam
7Kiểm tra xem đường dẫn có phải là tệp không
Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
4 trên *nix>>> from pathlib import Path
>>> print[Path['usr'].joinpath['bin'].joinpath['spam']]
# usr/bin/spam
8Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
5 trên *nix>>> from pathlib import Path
>>> print[Path['usr'].joinpath['bin'].joinpath['spam']]
# usr/bin/spam
9Kiểm tra xem đường dẫn có phải là thư mục không
Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
4 trên *nix>>> from pathlib import Path
>>> print[Path['usr'] / 'bin' / 'spam']
# usr/bin/spam
0Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
5 trên *nix>>> from pathlib import Path
>>> print[Path['usr'] / 'bin' / 'spam']
# usr/bin/spam
1Lấy kích thước của tệp theo byte
Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
4 trên Windows>>> from pathlib import Path
>>> print[Path['usr'] / 'bin' / 'spam']
# usr/bin/spam
2Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
5 trên *nix>>> from pathlib import Path
>>> print[Path['usr'] / 'bin' / 'spam']
# usr/bin/spam
3danh sách thư mục
Liệt kê nội dung thư mục bằng cách sử dụng
>>> from pathlib import Path
>>> from os import chdir
>>> print[Path.cwd[]]
# /home/asweigart
>>> chdir['/usr/lib/python3.6']
>>> print[Path.cwd[]]
# /usr/lib/python3.6
8 trên Windows>>> from pathlib import Path
>>> print[Path['usr'] / 'bin' / 'spam']
# usr/bin/spam
4Liệt kê nội dung thư mục bằng cách sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
5 trên *nix>>> from pathlib import Path
>>> print[Path['usr'] / 'bin' / 'spam']
# usr/bin/spam
5Kích thước tệp thư mục
CẢNH BÁO
Bản thân các thư mục cũng có kích thước. Vì vậy, bạn có thể muốn kiểm tra xem đường dẫn có phải là tệp hoặc thư mục hay không bằng cách sử dụng các phương thức trong các phương thức được thảo luận trong phần trên
Sử dụng đồng thời
>>> import os
>>> os.makedirs['C:\\delicious\\walnut\\waffles']
0 và >>> import os
>>> os.makedirs['C:\\delicious\\walnut\\waffles']
1 trên Windows>>> from pathlib import Path
>>> print[Path['usr'] / 'bin' / 'spam']
# usr/bin/spam
6Sử dụng
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
5 trên *nix>>> from pathlib import Path
>>> print[Path['usr'] / 'bin' / 'spam']
# usr/bin/spam
7Sao chép tập tin và thư mục
Mô-đun
>>> import os
>>> os.makedirs['C:\\delicious\\walnut\\waffles']
3 cung cấp chức năng sao chép tệp, cũng như toàn bộ thư mục>>> from pathlib import Path
>>> print[Path['usr'] / 'bin' / 'spam']
# usr/bin/spam
8Trong khi
>>> import os
>>> os.makedirs['C:\\delicious\\walnut\\waffles']
4 sẽ sao chép một tệp duy nhất, thì >>> import os
>>> os.makedirs['C:\\delicious\\walnut\\waffles']
5 sẽ sao chép toàn bộ thư mục và mọi thư mục và tệp có trong đó>>> from pathlib import Path
>>> print[Path['usr'] / 'bin' / 'spam']
# usr/bin/spam
9Di chuyển và đổi tên
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
0Đường dẫn đích cũng có thể chỉ định tên tệp. Trong ví dụ sau, tệp nguồn được di chuyển và đổi tên
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
1Nếu không có thư mục egg thì
>>> import os
>>> os.makedirs['C:\\delicious\\walnut\\waffles']
6 sẽ đổi tên thành bacon. txt vào một tệp có tên là egg>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
2Xóa tập tin và thư mục
Gọi
7 hoặc>>> import os >>> os.makedirs['C:\\delicious\\walnut\\waffles']
8 sẽ xóa tệp tại đường dẫn>>> import os >>> os.makedirs['C:\\delicious\\walnut\\waffles']
Gọi
9 hoặc>>> import os >>> os.makedirs['C:\\delicious\\walnut\\waffles']
0 sẽ xóa thư mục tại đường dẫn. Thư mục này phải trống bất kỳ tệp hoặc thư mục nào>>> from pathlib import Path >>> cwd = Path.cwd[] >>> [cwd / 'delicious' / 'walnut' / 'waffles'].mkdir[] # Traceback [most recent call last]: # File "", line 1, in # File "/usr/lib/python3.6/pathlib.py", line 1226, in mkdir # self._accessor.mkdir[self, mode] # File "/usr/lib/python3.6/pathlib.py", line 387, in wrapped # return strfunc[str[pathobj], *args] # FileNotFoundError: [Errno 2] No such file or directory: '/home/asweigart/delicious/walnut/waffles'
Gọi
1 sẽ xóa thư mục tại đường dẫn và tất cả các tệp và thư mục chứa trong đó cũng sẽ bị xóa>>> from pathlib import Path >>> cwd = Path.cwd[] >>> [cwd / 'delicious' / 'walnut' / 'waffles'].mkdir[] # Traceback [most recent call last]: # File "", line 1, in # File "/usr/lib/python3.6/pathlib.py", line 1226, in mkdir # self._accessor.mkdir[self, mode] # File "/usr/lib/python3.6/pathlib.py", line 387, in wrapped # return strfunc[str[pathobj], *args] # FileNotFoundError: [Errno 2] No such file or directory: '/home/asweigart/delicious/walnut/waffles'
Đi bộ trên cây thư mục
>>> my_files = ['accounts.txt', 'details.csv', 'invite.docx']
>>> for filename in my_files:
... print[os.path.join['C:\\Users\\asweigart', filename]]
...
# C:\Users\asweigart\accounts.txt
# C:\Users\asweigart\details.csv
# C:\Users\asweigart\invite.docx
3Mô-đun Pathlib vs Os
`pathlib` cung cấp nhiều chức năng hơn những chức năng được liệt kê ở trên, như lấy tên tệp, lấy phần mở rộng tệp, đọc/ghi tệp mà không cần mở tệp theo cách thủ công, v.v. Xem tài liệu chính thức nếu bạn muốn biết thêm