[英]Python - adding file names (not full paths) to list from directory and subfolders
[英]Extract Directory Names from Dynamic File Paths in Python
Python中是否可以通過使用REGEX
和group()
或os.path
來提取Windows目錄路徑中的每個文件目錄和文件?
我正在處理目錄數量不同的文件路徑,因此一行可能是D:\\dir1\\file.txt
而下一行可能是Z:\\dir1\\dir2\\dir3\\dir4\\dir5\\file.txt
,所以我想知道當我正在搜索的文本中有不同數量的\\
時,是否甚至可以使用REGEX
或Python中的內置函數來做到這一點。
任何見解都將是有幫助的,即使這只是無法實現的痛苦事實。
編輯后:
我正在嘗試提取\\
和最終file.txt
之間的目錄名稱,並將每個dir
或file
寫入輸出文本文件中它自己的列。
我對以上兩行的期望輸出是:
col1|col2|col3|col4|col5|col6
dir1|dir2|dir3|dir4|dir5|file.txt
dir1| | | | |file.txt
我知道os.path
具有很多好的內置函數,但是在閱讀以下站點后: https : //docs.python.org/2/library/os.path.html ,我認為它們中的任何一個都沒有做我正在嘗試做的。
您可以使用以下命令分隔文件名和目錄:
splitFilePath = filePath.rsplit (']\', 1)
directory = splitFilePath [0]
fileName = splitFilePath [1]
您可以使用以下命令獲取所有以“ \\”分隔的塊:
chunks = filePath.split (r'\')
然后,您可以使用切片將特定的塊取出,並使用連接將它們的子集粘合在一起。
使用在已編輯問題中添加的列,假定您知道確定列數的最長路徑:
針對您的評論:
運行以下程序
filePath = r'E:\dir1\Logs\dir2\1998-12-23\message.txt'
splitFilePath = filePath.rsplit ('\\', 1)
directory = splitFilePath [0]
fileName = splitFilePath [1]
print directory
print fileName
給出作為輸出
E:\dir1\Logs\dir2\1998-12-23
message.txt
因此,在rsplit中使用“ \\\\”而不是“ \\”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.