Hướng dẫn how do i get the basename of a file in python? - làm cách nào để lấy tên cơ sở của tệp trong python?

Ví dụ 1: Sử dụng mô -đun HĐH

import os # file name with extension file_name = os.path.basename('/root/file.ext') # file name without extension print(os.path.splitext(file_name)[0])

Đầu ra

file

file5 Cho tên của tệp/thư mục cuối cùng của đường dẫn, trong khi file6 chia tên tệp thành tên tệp và phần mở rộng.

import os print(os.path.splitext(file_name))

Đầu ra

('file', '.ext')

file5 Cho tên của tệp/thư mục cuối cùng của đường dẫn, trong khi file6 chia tên tệp thành tên tệp và phần mở rộng.

from pathlib import Path print(Path('/root/file.ext').stem)

Đầu ra

file

file5 Cho tên của tệp/thư mục cuối cùng của đường dẫn, trong khi file6 chia tên tệp thành tên tệp và phần mở rộng.

Ví dụ 2: Sử dụng mô -đun đường dẫn

Câu trả lời bằng cách sử dụng pathlib cho một số kịch bản

Sử dụng pathlib, việc lấy tên tệp là tầm thường khi chỉ có một phần mở rộng (hoặc không có), nhưng có thể khó xử khi xử lý trường hợp chung của nhiều phần mở rộng.

Không hoặc một tiện ích mở rộng

from pathlib import Path pth = Path('./thefile.tar') fn = pth.stem print(fn) # thefile # Explanation: # the `stem` attribute returns only the base filename, stripping # any leading path if present, and strips the extension after # the last `.`, if present. # Further tests eg_paths = ['thefile', 'thefile.tar', './thefile', './thefile.tar', '../../thefile.tar', '.././thefile.tar', 'rel/pa.th/to/thefile', '/abs/path/to/thefile.tar'] for p in eg_paths: print(Path(p).stem) # prints thefile every time

Hai hoặc ít hơn các phần mở rộng

from pathlib import Path pth = Path('./thefile.tar.gz') fn = pth.with_suffix('').stem print(fn) # thefile # Explanation: # Using the `.with_suffix('')` trick returns a Path object after # stripping one extension, and then we can simply use `.stem`. # Further tests eg_paths += ['./thefile.tar.gz', '/abs/pa.th/to/thefile.tar.gz'] for p in eg_paths: print(Path(p).with_suffix('').stem) # prints thefile every time

Bất kỳ số tiện ích mở rộng nào (0, 1 hoặc nhiều hơn)

from pathlib import Path pth = Path('./thefile.tar.gz.bz.7zip') fn = pth.name if len(pth.suffixes) > 0: s = pth.suffixes[0] fn = fn.rsplit(s)[0] # or, equivalently fn = pth.name for s in pth.suffixes: fn = fn.rsplit(s)[0] break # or simply run the full loop fn = pth.name for _ in pth.suffixes: fn = fn.rsplit('.')[0] # In any case: print(fn) # thefile # Explanation # # pth.name -> 'thefile.tar.gz.bz.7zip' # pth.suffixes -> ['.tar', '.gz', '.bz', '.7zip'] # # If there may be more than two extensions, we can test for # that case with an if statement, or simply attempt the loop # and break after rsplitting on the first extension instance. # Alternatively, we may even run the full loop and strip one # extension with every pass. # Further tests eg_paths += ['./thefile.tar.gz.bz.7zip', '/abs/pa.th/to/thefile.tar.gz.bz.7zip'] for p in eg_paths: pth = Path(p) fn = pth.name for s in pth.suffixes: fn = fn.rsplit(s)[0] break print(fn) # prints thefile every time

Trường hợp đặc biệt trong đó phần mở rộng đầu tiên được biết đến

Chẳng hạn, nếu phần mở rộng có thể là file9, import os print(os.path.splitext(file_name))0, import os print(os.path.splitext(file_name))1, v.v.; Bạn chỉ có thể import os print(os.path.splitext(file_name))2 tiện ích mở rộng đã biết và lấy phần tử đầu tiên:

pth = Path('foo/bar/baz.baz/thefile.tar.gz') fn = pth.name.rsplit('.tar')[0] print(fn) # thefile

Làm việc với Unix hoặc MacOS & NBSP; sử dụng dấu phân cách đường dẫn / làm đường dẫn và Windows sử dụng dấu gạch chéo ngược \ làm dấu phân cách. Bộ phân cách trong hệ điều hành chạy Python có thể được kiểm tra và xác nhận bởi hàm OS.Path.sep (). Hãy cùng xem hàm os.path.basename () hoạt động như thế nào trong Python.UNIX or MacOS uses the slash / as path separator, and Windows uses the backslash \ as the separator. The separator in the OS running Python can be checked and confirmed by the os.path.sep() function. Let’s see how os.path.basename() function works in Python.

Os.Path.basename () là một phương thức Python tích hợp được sử dụng để lấy tên cơ sở trong đường dẫn được chỉ định. Hàm path.basename () có một đối số của một đường dẫn được chỉ định và trả về tên cơ sở của đường dẫn đường dẫn.os.path.basename() is a built-in Python method used to get the base name in the specified path. The path.basename() function takes an argument of a specified path and returns the base name of the pathname path.

Để trích xuất tên tệp từ đường dẫn trong Python, hãy sử dụng phương thức Os.Path.basename ().

Cú pháp

file0

Thông số

Hàm basename () có đối tượng giống như đường dẫn A & nbsp; biểu thị đường dẫn hệ thống tệp.

Giá trị trả về

Phương thức path.basename () trả về một giá trị chuỗi đại diện cho tên cơ sở của đường dẫn được chỉ định.

Thí dụ

Để làm việc với mô -đun HĐH trong Python, hãy nhập mô -đun HĐH khi bắt đầu tệp và sử dụng hàm path.basename ().

file1

Đầu ra

file2

Như bạn có thể thấy từ đầu ra, phương thức Os.Path.basename () sử dụng chức năng Os.Path.Split () để chia đường dẫn được chỉ định thành một cặp gọi là đầu và đuôi. Hàm Os.Path.basename () trả về phần đuôi của đường dẫn.os.path.basename() method internally use os.path.split() function to split the specified path into a pair called head and tail. The os.path.basename() function returns the tail part of the path.

Trong ví dụ của chúng tôi, phần đuôi của đường dẫn là thư mục mã, đó là lý do tại sao nó trả về mã trong đầu ra.code directory which is why it returns the code in the output.

Để trích xuất tên tệp từ đường dẫn trong Python, hãy sử dụng phương thức Os.Path.basename ().

file3

Đầu ra

file4

Và chúng tôi nhận được tên tệp từ đường dẫn bằng hàm basename ().

Sự khác biệt giữa Os.Path.Dirname và Os.Path.Basename ()

Hàm Os.Path.Dirname (Path) trong Python trả về đầu đường dẫn trong.head of the path in.

Hàm Os.Path.Basename (PATH) trả về đuôi của đường dẫn trong Python.tail of the path in Python.

Các chức năng này được sử dụng khi bạn nhận được tên tệp/tên thư mục được đưa ra một tên đường dẫn đầy đủ.

Sử dụng OS.Path.Split () để lấy cả tên tệp và tên thư mục (tên thư mục).

Hàm Os.Path.Split () trả về Tuple của tên tệp được trả về bởi Os.Path.Basename () và tên thư mục được trả về bởi Os.Path.DirName ().

Xem thêm

Python os.path.abspath ()

Python os.path.exists ()

Python os.path.join ()

Python os.listdir ()

Python OS.System ()

Làm cách nào để in đường dẫn của một tệp trong Python?

Để có được thư mục làm việc hiện tại trong Python, hãy sử dụng phương thức Os.getCwd ().Hàm này của mô -đun HĐH Python trả về chuỗi chứa đường dẫn tuyệt đối đến thư mục làm việc hiện tại.use the os. getcwd() method. This function of the Python OS module returns the string containing the absolute path to the current working directory.

Làm cách nào để cắt một đường dẫn tệp trong Python?

Phương thức Path.Split () trong Python được sử dụng để chia tên đường dẫn thành đầu cặp và đuôi. split() method in Python is used to Split the path name into a pair head and tail.

Làm thế nào để bạn tìm thấy con đường tương đối trong Python?

Một đường dẫn tương đối bắt đầu với/, ./ hoặc ../.Để có được một đường dẫn tương đối trong Python, trước tiên bạn phải tìm vị trí của thư mục làm việc nơi tập lệnh hoặc mô -đun được lưu trữ. Sau đó, bạn có được đường dẫn tương đối đến tệp muốn.you first have to find the location of the working directory where the script or module is stored. Then from that location, you get the relative path to the file want.

Tên đường dẫn là gì?

Con đường.Phương thức basename () trả về phần tệp của đường dẫn tệp.returns the filename part of a file path.

Chủ đề