如何在python中将文件路径和文件名拆分成组件?

2024-06-15 03:24:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我想拆分“C:\My Work\Tester Related\A\u B\u C.txt” 在Python的[C:\,我的工作,测试人员相关的,A,B,C,txt]中。在

我刚开始学Python。我确实进口了操作系统路径模块,和玩 交互提示中的一些函数,但无法获得所需的结果。 谢谢你的帮助。我能利用os.path.basename获取文件,但无法基于给定的分隔符''uu'将文件拆分为组件。在


Tags: 模块文件path函数路径txt利用os
3条回答

一条丑陋的两条线!在

import itertools
txt = r"C:\\My Work\\Tester Related\\A_B_C.txt"

result = list(itertools.chain(*map(lambda x: x.split('_'), txt.split(os.path.sep))))
result = result[:-1] + list(os.path.splitext(result[-1]))

更好的方法是使用re,就像@paedrickunningham在他的回答中所做的那样。在

^{pr2}$
s = "C:\\My Work\\Tester Related\\A_B_C.txt"

import re
print (re.split(r"\\|\.|\_",s))
['C:', 'My Work', 'Tester Related', 'A', 'B', 'C', 'txt']
original_path = "C:\My Work\Tester Related\A_B_C.txt"

# Must quote the backslash in this case.
split_path = original_path.split("\\")

# At this point, split_path looks like:
# ['C:', 'My Work', 'Tester Related', 'A_B_C.txt']

split_filename = split_path[-1].split("_")
# split_filename is ['A', 'B', 'C.txt']

split_ext = split_filename[:-1].split(".")
# split_ext is ['C', 'txt']

split_filename = split_filename[:-1] + split_ext
# split_filename is ['A', 'B', 'C', 'txt']

split_path = split_path[:-1] + split_filename
# ['C:', 'My Work', 'Tester Related', 'A', 'B', 'C', 'txt']

虽然有点老套,但还是行得通的。在

相关问题 更多 >