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,我认为他们中的任何一个都没有做我想做的事。 / p>
答案 0 :(得分:2)
您可以使用以下命令分隔fileName和目录:
some_instance.parent.parent.parent
您可以使用以下方法将所有块分隔为“\”:
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
所以'\\'而不是rsplit中的'\'。