调用字符串的索引位置

时间:2014-07-14 13:43:21

标签: python string python-2.7

因此,我正在编写一个小程序作为更大的一部分来从文件路径中提取名称。有问题的名字总是从文件路径中的相同位置开始,所以我的推理是这样的,以获得我想要的名称。

说道路就像这样C:/ Docs / Bob / blah / blah / blah

#cut the string at to the beginning of the name
path = path[8:]
#make a loop to iterate over the string
for letter in path:
    if(letter == '/'):
        string_index = index

return path[:string_index]

我正在寻找的是一种方法来获得"索引"

谢谢!

1 个答案:

答案 0 :(得分:1)

不要这样做。请改用os.path。例如:

>>> import os.path
>>> path = 'C:\\Docs\\Bob\\blah\\blah\\blah'
>>> base = 'C:\\Docs'
>>> os.path.relpath(path, base)
'Bob\\blah\\blah\\blah'

此外,使用os.path将确保您的代码可以在其他平台上运行,而不仅仅是Windows(假设基本路径设置正确)。

如果您只想要'Bob'作为答案,那么您可能想要做类似

的事情
>>> import re
>>> # Windows supports both / and \
>>> if os.path.altsep:
...     sep=os.path.sep + os.path.altsep
... else:
...     sep=os.path.sep
...
>>> pseps = re.compile('[%s]' % re.escape(sep))
>>> pseps.split(os.path.relpath(path,base), 1)[0]
'Bob'

(可悲的是os.path.split()只能从最右边的结束,所以我们不能在没有递归的情况下轻松使用它。)