Chuỗi đường dẫn tệp Python

00. 00 Giao diện chính để làm việc với đường dẫn tệp trong Python 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
2. Nó được tích hợp sẵn, nhưng bạn sẽ phải nhập nó để làm việc với nó

00. 09 Bạn làm điều đó bằng cách gõ

>>> 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
3. Và tôi sẽ chuyển sang một phiên IDLE để làm việc cùng với những thứ mà tôi sẽ nói ở đây. Trong IDLE REPL, tôi bắt đầu bằng cách nhập
>>> 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
3 và nó cho phép tôi truy cập vào 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
2. Bây giờ bạn làm gì với 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
2?

00. 32 Chủ yếu bạn sẽ làm việc với các đối tượ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
7. Đó là những đối tượng đại diện cho đường dẫn tệp trên hệ điều hành của bạn và bạn có thể tạo chúng theo ba cách khác nhau

00. 43 Bạn có thể chuyển trực tiếp một chuỗi vào đó đại diện cho đường dẫn tệp, bạn có thể 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 hoặ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
9, viết tắt của thư mục làm việc hiện tại hoặc bạn có thể sử dụng toán tử
>>> from pathlib import Path

>>> print[Path['usr'].joinpath['bin'].joinpath['spam']]
# usr/bin/spam
0 [dấu gạch chéo lên] cũng như một phương thức lớp khác có tên là
>>> from pathlib import Path

>>> print[Path['usr'].joinpath['bin'].joinpath['spam']]
# usr/bin/spam
1,

01. 06 Bạn sẽ xem xét cả ba tùy chọn này trong các bài học sắp tới và hãy bắt đầu với tùy chọn có vẻ đơn giản nhất, đó là tạo chuỗi từ một chuỗi

01. 18 Tôi ở đây trên hệ điều hành macOS. Giả sử tôi muốn biểu diễn một đường dẫn trông giống như vậy, vì vậy nó đi tới ____831, là tên người dùng của tôi trên máy tính này, sau đó tới _____832 và cuối cùng là một tệp có tên ____________________

01. 37 Đây là con đường tôi muốn đại diện. Bây giờ, cách nhanh nhất để tạo đối tượ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
7 cho đường dẫn này là chuyển giá trị này dưới dạng chuỗi.
>>> 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
35 … và sau đó tôi tạo một chuỗi, dán nội dung tôi đã viết ở đó vào nhận xét, đóng dấu ngoặc đơn và nhấn Enter

01. 59 Và bạn có thể thấy rằng điều này trả về một đối tượ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
7, chỉ có giá trị của đường dẫn cụ thể này. Bây giờ bạn có thể thấy rằng nó ghi
>>> 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
37 ở đây thay vì chỉ ghi
>>> 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

02. 09 Và lý do là tôi đang dùng hệ điều hành macOS. Đó là một hệ thống dựa trên Unix, cũng giống như các hệ thống Linux. Đây là lý do tại sao nó nói

>>> 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
37. Nếu bạn đang sử dụng máy tính Windows, bạn sẽ nhận được thứ gì đó giống như
>>> 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
30 được thêm vào trước tất cả các đường dẫn mà bạn tạo trên hệ thống đó. Nếu không, nó trông khá giống nhau. Tuy nhiên, nếu bạn đang sử dụng hệ thống Windows, thì bạn có thể gặp sự cố

02. 37 Đường dẫn Windows sử dụng ký 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
31 thay vì ký tự
>>> from pathlib import Path

>>> print[Path['usr'].joinpath['bin'].joinpath['spam']]
# usr/bin/spam
0 để biểu thị đường dẫn và ký 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
31 trong Python có ý nghĩa đặc biệt vì nó bắt đầu một chuỗi thoát, điều đó có nghĩa là nếu bạn chỉ chuyển một chuỗi đơn giản với mộ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
31, thì Python sẽ chuyển sang

03. 01 Điều này sẽ phá vỡ đường dẫn Windows của bạn nếu bạn không tính đến nó và bạn sẽ gặp lỗi cú pháp. Có hai cách xung quanh nó. Thay vào đó, bạn có thể sử dụng

>>> from pathlib import Path

>>> print[Path['usr'].joinpath['bin'].joinpath['spam']]
# usr/bin/spam
0, nghĩa là bạn chỉ có thể biểu thị đường dẫn Windows bằ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
38 bình thường, nhưng sau đó thay 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
31 như bình thường, bạn chỉ cần sử dụng
>>> from pathlib import Path

>>> print[Path['usr'].joinpath['bin'].joinpath['spam']]
# usr/bin/spam
0 thay thế

03. 24 Bạn có thể làm điều đó và thư việ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
2 biết phải làm gì với điều đó, sau đó tạo chính xác một đối tượ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
7 trỏ đến đường dẫn cụ thể này

03. 33 Một cách khác để làm điều đó là sử dụng chuỗi thô, và bạn có thể làm điều đó trong Python bằng cách đặt trước chuỗi chỉ ký 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
23, vì vậy bạ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
23 này trước chuỗi, sau đó bạn có thể sử dụng ký 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
31 như bạn muốn

03. 50 Hãy nhớ rằng điều này chỉ phù hợp với Windows vì trên các hệ thống Unix như macOS hoặc Linux, các đường dẫn đều sử dụng dấu gạch chéo lên phía trước này và đó không phải là ký tự dành riêng cho Python

Chúng tôi có thể lấy vị trí [đường dẫn] của tệp script đang chạy. py với __file__. __file__ rất hữu ích để đọc các tệp khác và nó cung cấp vị trí hiện tại của tệp đang chạy. Nó khác nhau trong các phiên bản. Trong Trăn 3. 8 trở về trước, __file__ trả về đường dẫn đã chỉ định khi thực thi lệnh Python.  

Chúng ta có thể nhận được một đường dẫn tương đối nếu một đường dẫn tương đối được chỉ định. Nếu chúng tôi chỉ định một đường dẫn tuyệt đối trong os. đường dẫn. abspath[], nó sẽ được trả về như cũ, vì vậy nếu __file__ là một đường dẫn tuyệt đối, sẽ không có lỗi xảy ra ngay cả khi chúng ta đặt os. đường dẫn. abspath[__file__]

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
5

hệ đ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 nhau

May 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
9

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

>>> 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

>>> 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
2

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']

>>> 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

Thư mục làm việc hiện 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
66 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
8

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']

>>> 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

Tạo thư mục mớ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
66 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
2

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']

>>> 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

Ồ 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

>>> 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

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 [

>>> 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
80] và dot-dot [
>>> 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
81]. Đâ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
0

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
1

Bạ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
5

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
2

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
3

Xử 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
4

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
5

Tí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
6

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
7

Kiể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
8

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
9

Kiể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

>>> 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
20

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']

>>> 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
21

Lấ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

>>> 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
22

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']

>>> 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
23

danh sách thư mục

Liệ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
08 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
24

Liệ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

>>> 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
25

Kí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

>>> 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
20 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
21 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
26

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']

>>> 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
27

Sao chép tập tin và thư mục

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
23 cung cấp chức năng sao chép tệp, cũng như toàn bộ 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
28

Trong khi

>>> 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
24 sẽ sao chép một tệp, thì
>>> 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
25 sẽ sao chép toàn bộ thư mục và mọi thư mục và tệp có trong đó

>>> 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
29

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
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
1

Nếu không có thư mục egg thì

>>> 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
26 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
2

Xóa tập tin và thư mục

  • Gọi

    >>> 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
    
    27 hoặ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
    
    28 sẽ xóa tệp tại đường dẫn

  • Gọi

    >>> 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
    
    29 hoặ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
    
    40 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

  • Gọi

    >>> 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
    
    41 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

Đ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
3

Mô-đ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

Đường dẫn [__ tệp __] trong Python là gì?

đường dẫn. dirname[__file__], '. '] # A là thư mục mẹ của thư mục chứa chương trình .

Làm cách nào để chuyển đổi chuỗi thành đường dẫn trong Python?

Sử dụng hàm tạo của lớp Đường dẫn để chuyển Chuỗi thành Đường dẫn trong Python . Bạn cần nhập lớp Đường dẫn từ pathlib. Chúng tôi đã sử dụng hàm tạo Path[] để chuyển đổi Chuỗi thành Đường dẫn. Hàm tạo này chấp nhận một chuỗi chứa đường dẫn bắt buộc và chuyển đổi chuỗi thành đường dẫn POSIX hoặc đường dẫn Windows dựa trên hệ thống của bạn.

Đường dẫn tệp Python ở đâu?

Để truy xuất tệp trong Python, bạn cần biết chính xác đường dẫn đến tệp, trong Windows, bạn có thể xem đường dẫn của tệp cụ thể bằng cách nhấp chuột phải vào Tệp- . .

Chủ Đề