Mô-đun
from pathlib import Path
print[Path.cwd[]] # /home/skovorodkin/stack
1, được giới thiệu trong Python 3.4 [PEP 428-Mô-đun PATHLIB-Đường dẫn hệ thống tập tin hướng đối tượng], làm cho trải nghiệm liên quan đến đường dẫn tốt hơn nhiều.pwd
/home/skovorodkin/stack
tree
.
└── scripts
├── 1.py
└── 2.py
Để có được thư mục làm việc hiện tại, hãy sử dụng
from pathlib import Path
print[Path.cwd[]] # /home/skovorodkin/stack
2:from pathlib import Path
print[Path.cwd[]] # /home/skovorodkin/stack
Để có được một đường dẫn tuyệt đối đến tệp tập lệnh của bạn, hãy sử dụng phương thức
from pathlib import Path
print[Path.cwd[]] # /home/skovorodkin/stack
3:print[Path[__file__].resolve[]] # /home/skovorodkin/stack/scripts/1.py
Và để có được đường dẫn của một thư mục nơi đặt tập lệnh của bạn, truy cập
from pathlib import Path
print[Path.cwd[]] # /home/skovorodkin/stack
4 [nên gọi from pathlib import Path
print[Path.cwd[]] # /home/skovorodkin/stack
5 trước from pathlib import Path
print[Path.cwd[]] # /home/skovorodkin/stack
4]:print[Path[__file__].resolve[].parent] # /home/skovorodkin/stack/scripts
Hãy nhớ rằng
from pathlib import Path
print[Path.cwd[]] # /home/skovorodkin/stack
7 không đáng tin cậy trong một số tình huống: Làm thế nào để tôi có được đường dẫn của tệp được thực hiện hiện tại trong Python ?.Xin lưu ý rằng
from pathlib import Path
print[Path.cwd[]] # /home/skovorodkin/stack
2, from pathlib import Path
print[Path.cwd[]] # /home/skovorodkin/stack
3 và các phương thức print[Path[__file__].resolve[]] # /home/skovorodkin/stack/scripts/1.py
0 khác trả về các đối tượng đường dẫn [print[Path[__file__].resolve[]] # /home/skovorodkin/stack/scripts/1.py
1 trong trường hợp của tôi], không phải chuỗi. Trong Python 3,4 và 3.5 gây ra một số đau, bởi vì hàm tích hợp print[Path[__file__].resolve[]] # /home/skovorodkin/stack/scripts/1.py
2 chỉ có thể hoạt động với các đối tượng chuỗi hoặc byte và không hỗ trợ các đối tượng print[Path[__file__].resolve[]] # /home/skovorodkin/stack/scripts/1.py
0, vì vậy bạn phải chuyển đổi các đối tượng print[Path[__file__].resolve[]] # /home/skovorodkin/stack/scripts/1.py
0 thành các chuỗi hoặc sử dụng phương pháp Tùy chọn yêu cầu bạn thay đổi mã cũ:Tập lệnh tệp/2.py
from pathlib import Path
p = Path[__file__].resolve[]
with p.open[] as f: pass
with open[str[p]] as f: pass
with open[p] as f: pass
print['OK']
Đầu ra
python3.5 scripts/2.py
Traceback [most recent call last]:
File "scripts/2.py", line 11, in
with open[p] as f:
TypeError: invalid file: PosixPath['/home/skovorodkin/stack/scripts/2.py']
Như bạn có thể thấy,
print[Path[__file__].resolve[]] # /home/skovorodkin/stack/scripts/1.py
6 không hoạt động với Python 3.5.PEP 519 - Thêm giao thức đường dẫn hệ thống tệp, được triển khai trong Python 3.6, thêm hỗ trợ của các đối tượng
print[Path[__file__].resolve[]] # /home/skovorodkin/stack/scripts/1.py
7 vào hàm print[Path[__file__].resolve[]] # /home/skovorodkin/stack/scripts/1.py
2, vì vậy bây giờ bạn có thể chuyển các đối tượng print[Path[__file__].resolve[]] # /home/skovorodkin/stack/scripts/1.py
0 cho chức năng print[Path[__file__].resolve[]] # /home/skovorodkin/stack/scripts/1.py
2 trực tiếp:python3.6 scripts/2.py
OK
Trên trang này: Open [], Path Path, CWD ['Thư mục làm việc hiện tại'], tiền tố R 'RAW String', OS.GetCwd [], Os.Chdir [].
Tham khảo một tệp có đường dẫn và tên đầy đủ
Như đã thấy trong các hướng dẫn #12 và #13, bạn có thể tham khảo một tệp cục bộ trong Python bằng cách sử dụng đường dẫn đầy đủ của tệp và tên tệp. Dưới đây, bạn đang mở một tệp để đọc:
& nbsp; | 0 |
& nbsp; | 0 |
Tệp Python nằm ở đâu?
Xác định vị trí thủ công nơi Python được cài đặt loại 'Python' trong thanh tìm kiếm Windows. Nhấp chuột phải vào ứng dụng Python, sau đó chọn Vị trí tệp Mở Mở Nhấp chuột phải vào phím tắt Python, sau đó chọn Thuộc tính. Nhấp vào trên “Mở tệp vị trí- Thư mục tệp trong Python là gì?RECOMMENDED.
- Thư mục hoặc thư mục là một tập hợp các tệp và thư mục con. Python có mô -đun HĐH cung cấp cho chúng tôi nhiều phương pháp hữu ích để làm việc với các thư mục [và các tệp].backslash, because it is a special character in Python, you must remember to escape every instance: 'C:\\Users\\narae\\Desktop\\alice.txt'
- Trên trang này: Open [], Path Path, CWD ['Thư mục làm việc hiện tại'], tiền tố R 'RAW String', OS.GetCwd [], Os.Chdir [].rawstring marker "r": r'C:\Users\narae\Desktop\alice.txt'. That way, everything in the string is interpreted as a literal character, and you don't have to escape every backslash.
Tham khảo một tệp có đường dẫn và tên đầy đủ
Như đã thấy trong các hướng dẫn #12 và #13, bạn có thể tham khảo một tệp cục bộ trong Python bằng cách sử dụng đường dẫn đầy đủ của tệp và tên tệp. Dưới đây, bạn đang mở một tệp để đọc:>>> myfile = open['C:/Users/narae/Desktop/alice.txt'] # Windows >>> mytxt = myfile.read[] >>> myfile.close[]Current Working Directory [CWD] is crucial here. You can think of it as the folder your Python is operating inside at the moment. So far we have been using the absolute path, which begins from the topmost directory. But if your file reference does not start from the top [e.g., ________số 8
Trong Windows, một đường dẫn thư mục tệp đầy đủ bắt đầu bằng một ký tự ổ đĩa [c :, d :., v.v.]. Trong Linux và OS-X, nó bắt đầu bằng "/", được gọi là gốc. Các thư mục được phân tách bằng một dấu gạch chéo "/". Bạn có thể tra cứu đường dẫn thư mục đầy đủ của tệp và tên tệp thông qua "thuộc tính" của nó. Xem cách nó được thực hiện trong Câu hỏi thường gặp này.
'ling1330/alice.txt'Tham khảo một tệp trong Windowsrelative path"].
Trong Windows, có một vài cách bổ sung để tham khảo một tệp. Đó là bởi vì đường dẫn tập tin Windows sử dụng dấu gạch chéo ngược "\" thay vì chém. Python cho phép sử dụng cả hai trong hệ thống Windows, nhưng có một vài cạm bẫy cần chú ý. Để tổng hợp chúng:
- Python cho phép bạn sử dụng dấu gạch chéo kiểu OS-X/Linux "/" ngay cả trong Windows. Do đó, bạn có thể gọi tệp là 'C: /Users/narae/desktop/alice.txt'. KHUYẾN KHÍCH.Python script:
When you execute your script, your CWD is set to the directory where your script is. Therefore, you can refer to a file in a script by its name only provided that the file and the script are in the same directory. An example:myfile = open['alice.txt'] # alice.txt is in the same dir as foo.py mytxt = myfile.read[] myfile.close[] foo.py
- Nếu sử dụng Backslash, vì nó là một nhân vật đặc biệt trong Python, bạn phải nhớ thoát khỏi mọi trường hợp: 'C: \\ users \\ narae \\ Desktop \\ alice.txt'Python shell:
In your shell, the initial CWD setting varies by system. In Windows, the default location is often 'C:/program Files [x86]/Python35-32' [which is inconvenient -- see this "Basic Configurations" page or this FAQ for how to change it]. In OS-X, it is usually '/Users/username/Documents' where username is your user ID. [Mac users should see this FAQ for how to change your setting.] Unless your file happens to be in your CWD, you have two options:- Ngoài ra, bạn có thể tiền tố toàn bộ chuỗi tên tệp với điểm đánh dấu RawString "r": r'c: \ users \ narae \ Desktop \ alice.txt '. Bằng cách đó, mọi thứ trong chuỗi được hiểu là một nhân vật theo nghĩa đen và bạn không phải thoát khỏi mọi dấu gạch chéo ngược.
- Phím tắt tên tệp và CWD [thư mục làm việc hiện tại]
Tìm kiếm và thay đổi CWD
Hệ điều hành Module Python cung cấp các tiện ích để hiển thị và sửa đổi thư mục làm việc hiện tại của bạn. Dưới đây minh họa cách tìm cwd của bạn [.getcwd []] và thay đổi nó thành một thư mục khác [.chdir []]. Dưới đây là một ví dụ cho HĐH Windows:
& nbsp; | 0 |