Hướng dẫn get only folder name from path python - chỉ lấy tên thư mục từ đường dẫn python

Trong Python, tôi nên sử dụng lệnh nào để lấy tên của thư mục chứa tệp tôi đang làm việc?

os.path.dirname(path)
8

Ở đây

os.path.dirname(path)
9 là những gì tôi muốn có được.

Điều duy nhất tôi nghĩ ra là sử dụng

os.path.basename(path)
0 hai lần:

folderName = os.path.split(os.path.split("C:\folder1\folder2\filename.xml")[0])[1]

Có cách nào tốt hơn để làm điều đó không?

Hướng dẫn get only folder name from path python - chỉ lấy tên thư mục từ đường dẫn python

HK Boy

1.39811 Huy hiệu vàng18 Huy hiệu bạc24 Huy hiệu đồng11 gold badges18 silver badges24 bronze badges

Hỏi ngày 27 tháng 10 năm 2015 lúc 15:28Oct 27, 2015 at 15:28

Hướng dẫn get only folder name from path python - chỉ lấy tên thư mục từ đường dẫn python

1

Bạn có thể sử dụng

os.path.basename(path)
1:

os.path.dirname(path)

Trả về tên thư mục của đường dẫn đường dẫn. Đây là phần tử đầu tiên của cặp được trả về bằng cách chuyển đường dẫn đến chức năng chia ().

Và được đưa ra đường dẫn đầy đủ, sau đó bạn có thể phân chia bình thường để có được phần cuối cùng của đường dẫn. Ví dụ: bằng cách sử dụng

os.path.basename(path)
2:

os.path.basename(path)

Trả về tên cơ sở của đường dẫn đường dẫn. Đây là phần tử thứ hai của cặp được trả về bằng cách chuyển đường dẫn đến chức năng chia (). Lưu ý rằng kết quả của chức năng này khác với chương trình Unix Basename; Trong đó basename cho '/foo/thanh/' trả về 'thanh', hàm basename () trả về một chuỗi trống ('').


Tất cả cùng nhau:

>>> import os
>>> path=os.path.dirname("C:/folder1/folder2/filename.xml")
>>> path
'C:/folder1/folder2'
>>> os.path.basename(path)
'folder2'

Đã trả lời ngày 27 tháng 10 năm 2015 lúc 15:31Oct 27, 2015 at 15:31

Hướng dẫn get only folder name from path python - chỉ lấy tên thư mục từ đường dẫn python

Fedorquifedorquifedorqui

262K99 Huy hiệu vàng527 Huy hiệu bạc582 Huy hiệu Đồng99 gold badges527 silver badges582 bronze badges

0

Bạn đang tìm cách sử dụng dirname. Nếu bạn chỉ muốn một thư mục đó, bạn có thể sử dụng os.path.basename,

Khi đặt tất cả lại với nhau, nó trông như thế này:

os.path.basename(os.path.dirname('dir/sub_dir/other_sub_dir/file_name.txt'))

Điều đó sẽ giúp bạn "khác_sub_dir"

Sau đây không phải là cách tiếp cận lý tưởng, nhưng ban đầu tôi đã đề xuất, sử dụng os.path.split, và chỉ cần nhận mục cuối cùng. Mà trông như thế này:

os.path.split(os.path.dirname('dir/sub_dir/other_sub_dir/file_name.txt'))[-1]

Đã trả lời ngày 27 tháng 10 năm 2015 lúc 15:32Oct 27, 2015 at 15:32

idjawidjawidjaw

24.5K7 Huy hiệu vàng63 Huy hiệu bạc79 Huy hiệu đồng7 gold badges63 silver badges79 bronze badges

0

Điều này khá cũ, nhưng nếu bạn đang sử dụng Python 3.4 trở lên sử dụng pathlib.

# using OS
import os
path=os.path.dirname("C:/folder1/folder2/filename.xml")
print(path)
print(os.path.basename(path))

# using pathlib
import pathlib
path = pathlib.PurePath("C:/folder1/folder2/filename.xml")
print(path.parent)
print(path.parent.name)

Đã trả lời ngày 3 tháng 1 năm 2019 lúc 19:50Jan 3, 2019 at 19:50

Hướng dẫn get only folder name from path python - chỉ lấy tên thư mục từ đường dẫn python

dfresh22dfresh22dfresh22

9271 Huy hiệu vàng14 Huy hiệu bạc22 Huy hiệu đồng1 gold badge14 silver badges22 bronze badges

os.path.basename(path)
3 là những gì bạn đang tìm kiếm -

os.path.dirname(r"C:\folder1\folder2\filename.xml")

Hãy chắc chắn rằng bạn dự phòng

os.path.basename(path)
4 cho chuỗi để nó được coi là một chuỗi thô.

Thử nghiệm -

In [46]: os.path.dirname(r"C:\folder1\folder2\filename.xml")
Out[46]: 'C:\\folder1\\folder2'

Nếu bạn chỉ muốn

os.path.basename(path)
5, bạn có thể sử dụng
os.path.basename(path)
6 với phần trên, ví dụ -

os.path.basename(os.path.dirname(r"C:\folder1\folder2\filename.xml"))

Thử nghiệm -

os.path.dirname(path)
0

Đã trả lời ngày 27 tháng 10 năm 2015 lúc 15:32Oct 27, 2015 at 15:32

Hướng dẫn get only folder name from path python - chỉ lấy tên thư mục từ đường dẫn python

idjawidjawAnand S Kumar

24.5K7 Huy hiệu vàng63 Huy hiệu bạc79 Huy hiệu đồng18 gold badges178 silver badges170 bronze badges

Điều này khá cũ, nhưng nếu bạn đang sử dụng Python 3.4 trở lên sử dụng pathlib.pathlib

os.path.dirname(path)
1

Đã trả lời ngày 3 tháng 1 năm 2019 lúc 19:50

os.path.dirname(path)
2

9271 Huy hiệu vàng14 Huy hiệu bạc22 Huy hiệu đồngSep 3, 2020 at 17:09

1

os.path.basename(path)
3 là những gì bạn đang tìm kiếm -

Hãy chắc chắn rằng bạn dự phòng

os.path.basename(path)
4 cho chuỗi để nó được coi là một chuỗi thô.

os.path.dirname(path)
3

Đã trả lời ngày 3 tháng 1 năm 2019 lúc 19:50

os.path.dirname(path)
4

9271 Huy hiệu vàng14 Huy hiệu bạc22 Huy hiệu đồngMar 26, 2020 at 2:07

os.path.basename(path)
3 là những gì bạn đang tìm kiếm -

  1. Hãy chắc chắn rằng bạn dự phòng
    os.path.basename(path)
    
    4 cho chuỗi để nó được coi là một chuỗi thô.
  2. Thử nghiệm -
  3. Nếu bạn chỉ muốn
    os.path.basename(path)
    
    5, bạn có thể sử dụng
    os.path.basename(path)
    
    6 với phần trên, ví dụ -

Anand s Kumaranand s Kumar

os.path.dirname(path)
5

85.6K18 Huy hiệu vàng178 Huy hiệu bạc170 Huy hiệu đồng

  • bạn có thể sử dụng pathlib

  • Đầu ra của những điều trên là:

  • Đã trả lời ngày 3 tháng 9 năm 2020 lúc 17:09

Bạn có thể nhận được đường dẫn đầy đủ dưới dạng chuỗi sau đó chia nó thành một danh sách bằng ký tự phân tách của hệ điều hành của bạn. Sau đó, bạn nhận được tên chương trình, tên thư mục, vv bằng cách truy cập các phần tử từ cuối danh sách bằng các chỉ số âm.Aug 26, 2021 at 12:23

Hướng dẫn get only folder name from path python - chỉ lấy tên thư mục từ đường dẫn python

Như thế này:TAbdiukov

Đã trả lời ngày 26 tháng 3 năm 2020 lúc 2:073 gold badges12 silver badges25 bronze badges

Tôi đã cải thiện các giải pháp có sẵn, cụ thể là đoạn trích hoạt động với tất cả,

os.path.dirname(path)
6

Tập tin

os.path.dirname(path)
7

Thư mục với một chém đào tạo

Thư mục mà không cần một chém đào tạoNov 24, 2020 at 20:01