Hướng dẫn how do you separate a filename from the path in python? - làm cách nào để tách tên tệp khỏi đường dẫn trong python?
Đây là một giải pháp chỉ có regex, dường như hoạt động với bất kỳ đường dẫn hệ điều hành nào trên bất kỳ hệ điều hành nào. Show
Không cần mô -đun khác, và không cần tiền xử lý:
Cập nhật: Nếu bạn chỉ muốn một tên tệp tiềm năng, nếu có (nghĩa là, 5 là một DIR và 6) cũng vậy, hãy thay đổi Regex thành: 7. Đối với "Regex bị thách thức", điều này làm thay đổi hướng đi về phía trước tích cực đối với một loại chém nào đó đối với một cái nhìn phía trước tiêu cực, khiến các đường dẫn kết thúc bằng việc chém nói không trả lại gì thay vì thư mục phụ cuối cùng trong tên đường dẫn. Tất nhiên không có gì đảm bảo rằng tên tệp tiềm năng thực sự đề cập đến một tệp và đối với 8 hoặc 9 đó sẽ cần phải được sử dụng.Điều này sẽ phù hợp như sau:
Regex có thể được kiểm tra ở đây. Trong Python, bạn có thể lấy tên tệp (tên cơ sở), tên thư mục (thư mục) và phần mở rộng từ chuỗi đường dẫn hoặc tham gia các chuỗi để tạo chuỗi đường dẫn với mô -đun 0 trong thư viện tiêu chuẩn.
Bài viết này mô tả các nội dung sau đây.
Sử dụng chuỗi đường dẫn sau làm ví dụ.
Mã mẫu dưới đây đang chạy trên máy Mac. Ví dụ cho Windows được hiển thị ở cuối. Trong Python 3.4 trở lên, bạn cũng có thể lấy tên tệp, thư mục (thư mục), mở rộng, v.v., với mô -đun Pathlib coi các đường dẫn là đối tượng.
Sự khác biệt về phân tách đường dẫn bằng hệ điều hànhNhận tên tệp (basename) từ một đường dẫn: 1Tên tệp với phần mở rộng
Nhận tên tệp (basename) từ một đường dẫn: filepath = './dir/subdir/filename.ext' 1Tên tệp với phần mở rộng Tên tệp với phần mở rộngTên tệp mà không cần mở rộng Lấy tên thư mục (thư mục) từ một đường dẫn: 2
Tên tệp mà không cần mở rộngLấy tên thư mục (thư mục) từ một đường dẫn: 2
Nhận cặp tệp và tên thư mục: 3
Nhận tiện ích mở rộng: 4Lấy tên thư mục (thư mục) từ một đường dẫn: filepath = './dir/subdir/filename.ext' 2Nhận cặp tệp và tên thư mục: 3
Ghi chú khi chuỗi đường dẫn biểu thị thư mục 0Nhận cặp tệp và tên thư mục: filepath = './dir/subdir/filename.ext' 3Ghi chú khi chuỗi đường dẫn biểu thị thư mục Nhận tiện ích mở rộng: 4
2Tạo một chuỗi đường dẫn với một tiện ích mở rộng khác
3Ví dụ về các trường hợp như 5Ghi chú khi chuỗi đường dẫn biểu thị thư mụcNhận tiện ích mở rộng: 4Tạo một chuỗi đường dẫn với một tiện ích mở rộng khác 4Nhận tiện ích mở rộng mà không có dấu chấm (khoảng thời gian) 5Nhận tiện ích mở rộng: filepath = './dir/subdir/filename.ext' 4Sử dụng 4 để có được phần mở rộng. 4 chia phần mở rộng và các phần khác và trả lại nó như một tuple. Phần mở rộng chứa dấu chấm 7.
7Kết nối với toán tử 5 trả về chuỗi đường dẫn ban đầu.
8Tạo một chuỗi đường dẫn với một tiện ích mở rộng khácĐể tạo một chuỗi đường dẫn chỉ có phần mở rộng được thay đổi từ bản gốc, hãy nối phần tử đầu tiên của tuple được trả về bởi 4 với bất kỳ tiện ích mở rộng nào. 9Nhận tiện ích mở rộng mà không có dấu chấm (khoảng thời gian)Nếu bạn muốn nhận phần mở rộng mà không có dấu chấm (khoảng thời gian) 7, hãy chỉ định chuỗi thứ hai và tiếp theo với lát 8.
0Ví dụ về các trường hợp như filepath = './dir/subdir/filename.ext' 5Như được hiển thị trong ví dụ trên, 4 chia ở điểm cuối cùng (phải) DOT 7. Hãy cẩn thận với các phần mở rộng như 5. 1 2Nếu bạn muốn chia theo dấu chấm đầu tiên (trái) trong tên tệp, hãy sử dụng phương thức 9 của chuỗi, nhưng nó không hoạt động nếu tên thư mục cũng chứa dot 7. 3Sau khi chia tách với 3, áp dụng phương pháp 9 của chuỗi và tham gia với 6 được mô tả sau.Chuỗi được trả về bởi 9 không chứa dấu phân cách, vì vậy hãy cẩn thận nếu bạn muốn nhận tiện ích mở rộng với dấu chấm 7 như 4. 4Tạo chuỗi đường dẫn bằng cách kết hợp tên tệp và tên thư mục: filepath = './dir/subdir/filename.ext' 6Sử dụng 6 để tham gia tên tệp và thư mục để tạo chuỗi đường dẫn mới. 5Tạo chuỗi đường dẫn cho một tệp khác trong cùng một thư mụcNếu bạn muốn tạo một chuỗi đường dẫn cho một tệp khác trong cùng một thư mục của một tệp, hãy sử dụng 2 và 6.
7Sử dụng các định dạng hệ điều hành khác nhauNếu bạn muốn thao tác các chuỗi đường dẫn ở định dạng hệ điều hành không phải là hệ điều hành mà Python hiện đang chạy, nhập và sử dụng các mô -đun khác nhau thay vì mô -đun 6.
Vì mỗi mô -đun có cùng giao diện với 0, bạn có thể thay đổi phần 0 của mã mẫu cho đến nay thành tên mô -đun của chúng (như 8).Ví dụ cho WindowsMã mẫu dưới đây đang chạy trên MAC bằng mô -đun 8 được đề cập ở trên. Khi chạy trên Windows, bạn có thể thay thế 8 bằng 0.Backslash và chuỗi thôBộ phân cách đường dẫn trong Windows là Backslash 9.Để viết dấu gạch chéo ngược trong một chuỗi, bạn cần viết hai dấu gạch chéo ngược để trốn thoát. 07 đầu ra một dấu gạch chéo ngược.
8Chuỗi RAW ( 08) giúp viết đường dẫn Windows dễ dàng hơn vì bạn có thể viết dấu gạch chéo ngược như nó là. Một chuỗi thô và một chuỗi bình thường có giá trị bằng nhau. 9Để biết thêm thông tin về chuỗi thô, xem bài viết sau.
Ví dụ về nhận tên tệp, tên thư mục, tiện ích mở rộngNó cũng hoạt động trên Windows. 0Nhận và tham gia một ký tự ổ đĩa: filepath = './dir/subdir/filename.ext' 7Sử dụng 7 để lấy ký tự ổ đĩa. Mã mẫu dưới đây sử dụng 11. 7 phân chia ký tự ổ đĩa bao gồm Đại tá 13 và những người khác. 1Nếu bạn chỉ muốn nhận được ký tự ổ đĩa, hãy chọn ký tự đầu tiên. 2Hãy cẩn thận khi tham gia các ký tự ổ đĩa. Nếu bạn chuyển nó cho 6 như nó là, nó sẽ không hoạt động. 3Bạn cũng có thể chỉ định 0 ( 16 trong mã mẫu) trong đối số của 6 hoặc thêm một dấu tách vào ký tự ổ đĩa. 4
Làm cách nào để tách tên tệp và đường dẫn?Để trích xuất tên tệp từ tệp, chúng tôi sử dụng phương thức của getfileName () Phương thức của lớp đường dẫn.Phương pháp này được sử dụng để lấy tên tệp và phần mở rộng của chuỗi đường dẫn được chỉ định.Giá trị trả về là null nếu đường dẫn tệp là null.use “GetFileName()” method of “Path” class. This method is used to get the file name and extension of the specified path string. The returned value is null if the file path is null.
Làm cách nào để đọc một tên tệp từ con đường trong Python?Chương trình Python để lấy tên tệp từ đường dẫn tệp.. Nhập hệ điều hành # Tên tệp với phần mở rộng file_name = os.path.basename ('/root/file.ext') # Tên tệp không có phần mở rộng in (os.path.splitext (file_name) [0]) Chạy mã .. Nhập bản in hệ điều hành (Os.Path.SpliteXt (File_Name)) .... từ Pathlib Nhập đường dẫn PRINT (đường dẫn ('/root/file.ext'). Thân cây). Làm cách nào để xóa tên tệp khỏi đường dẫn trong Python?Xóa () Phương thức trong Python được sử dụng để xóa hoặc xóa đường dẫn tệp. in Python is used to remove or delete a file path.
Làm cách nào để lấy tên tệp mà không có phần mở rộng từ một con đường trong Python?Nhận tên tệp từ đường dẫn mà không cần mở rộng bằng phương thức RSplit () Python String RSplit () trả về danh sách các chuỗi sau khi phá chuỗi đã cho từ phía bên phải bởi bộ phân cách được chỉ định.using rsplit()
Python String rsplit() method returns a list of strings after breaking the given string from the right side by the specified separator. |