将目录路径解析为python中的变量

时间:2016-03-01 17:49:16

标签: python

我想解析var并设置我解析变量的内容 我想解析C:\\level1\\level2\\level3\\level4\\level5\\level6\\level7\\level8 and make it into level7 \ level8` 目前我只能获得level7

var = "C:\\level1\\level2\\level3\\level4\\level5\\level6\\level7\\level8"

split_path = os.path.split(os.path.split(var)[0])

print split_path

输出

('C:\\level1\\level2\\level3\\level4\\level5\\level6', 'level7')

2 个答案:

答案 0 :(得分:0)

你只得到' level7'是因为' level8'在

<?php
     echo "Hi from query.php";
?>

这应该清楚地证明:

os.path.split(var)[1]

以下是一行中的全部内容:

var = "C:\\level1\\level2\\level3\\level4\\level5\\level6\\level7\\level8"
split_path = os.path.split(var)
level8 = split_path[1]
split_path = os.path.split(split_path[0])
level7 = split_path[1]
my_split_path = (split_path[0], os.path.join(level7, level8)

为了清晰起见,我建议使用多行。

就双反斜杠而言,Python字符串文字将第一个反斜杠视为转义字符。因此,有两个实际上有一个用于所有用途。在解释器中my_split_path = (os.path.split(os.path.split(var)[0])[0], os.path.split(os.path.join(os.path.split(var)[0][1], os.path.split(var)[1]))) 将输出上面的字符串,但var将打印单个反斜杠。此问题已在此处详细解答:Power Query Looping

答案 1 :(得分:-1)

>>> var = "C:\\level1\\level2\\level3\\level4\\level5\\level6\\level7\\level8"
>>> var.split('\\', 7)
['C:', 'level1', 'level2', 'level3', 'level4', 'level5', 'level6', 'level7\\level8']
>>> var.split('\\', 7)[-1]
'level7\\level8'

我的代码输出与您相同。这可能是因为我在OSX上并且没有被识别为文件路径。无论如何,这个解决方案有点简单,并为您提供所需的位。

第二个参数告诉split从左边开始分割计数的最大次数,所以:

>>> var.split('\\', 1)
['C:', 'level1\\level2\\level3\\level4\\level5\\level6\\level7\\level8']
>>> var.split('\\', 2)
['C:', 'level1', 'level2\\level3\\level4\\level5\\level6\\level7\\level8']
# and so on...

你不需要做任何事情来移除额外的'\',它可以逃脱你想要的那个。{1}}。您可以使用print()

来查看此内容
>>> print(var.split('\\', 7)[-1])
level7\level8