簡體   English   中英

從沒有文件名的完整文件路徑中提取目錄路徑

[英]Extracting directory path from full file path without the file name

我有一個 function 接收完整的文件路徑作為字符串,目標是只返回沒有文件名的文件路徑。 The goal also is to handle all file type such as Windows, Unix etc. I had to replace \ with / which works fine for Windows file paths but seems unnecessary for Unix paths.

def get_path(file):
    file = file.replace('\\', '/')
    path = os.path.dirname(file)
    return path

有沒有辦法在不替換反斜杠的情況下提取路徑? 這是兩個示例輸入路徑字符串

Windows: 'c:\\Program Files\\user\\file1.txt' Unix: 'file/path/name.txt'

我已經搜索了堆棧,但找不到任何適合我的答案。

您可以使用os.path.split() 根據文檔,它根據運行python的操作系統拆分路徑

注意由於不同的操作系統有不同的路徑名約定,標准庫中有這個模塊的幾個版本。 os.path 模塊始終是適用於 Python 正在運行的操作系統的路徑模塊,因此可用於本地路徑。 但是,如果您想操作始終采用其中一種不同格式的路徑,您也可以導入和使用各個模塊。 它們都具有相同的接口:用於 UNIX 樣式路徑的 posixpath

  • Windows 路徑的 ntpath
  • macpath 用於舊式 MacOS 路徑
  • os2emxpath 用於 OS/2 EMX 路徑

如果您有 windows 路徑並且您在 Ubuntu/Linux 上運行,那么您可以使用文檔中所述的ntpath ,如下所示:

>>> import ntpath

>>> ntpath.split("c:\\Program Files\\user\\file1.txt")
('c:\\Program Files\\user', 'file1.txt')

>>> ntpath.split("file/path/name.txt")
('file/path', 'name.txt')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM