在python中获取“TypeError:字符串索引必须是整数”
我尝试在python提示符下用简单的步骤模仿我的代码:在python中获取“TypeError:字符串索引必须是整数”,python,python-3.x,Python,Python 3.x,我尝试在python提示符下用简单的步骤模仿我的代码: >>> path="D:/workspace/a/b\\c\\d.txt" >>> path[0,18] 但它给了我以下错误: TypeError: string indices must be integers 我只想检索目录作为路径。也就是说,我想去掉文件名:D:/workspace/a/b\\c 为什么会出现此错误?路径[0,18]应该是路径[0:18]或路径[:18] 无论父目录的长度是多少,
>>> path="D:/workspace/a/b\\c\\d.txt"
>>> path[0,18]
但它给了我以下错误:
TypeError: string indices must be integers
我只想检索目录作为路径。也就是说,我想去掉文件名:D:/workspace/a/b\\c
为什么会出现此错误?路径[0,18]应该是路径[0:18]或路径[:18]
无论父目录的长度是多少,都可以更好地工作:
import os
os.path.split(path)[0]
当我们想要从字符串中获取一系列字母时,我们应该使用:来定义范围。路径[0:16]表示从字符串的第1个元素到第17个元素获取项目。也可以用正则表达式替换
import re
result = re.sub(r'\\[a-z]*.txt', '', path)
路径[0:18]不是路径[0,18]。:is your problempath[0,18]由Python解析为路径中的查找索引0,18,并且不能通过元组为字符串编制索引。您使用的索引样式适用于二维数组。如果arr=np.数组[[1,2,3,4,5],[6,7,8,9,1]],则print arr[0,4]将产生4。这只是为了说明[0,4]没有错,它可以在2d数组上工作,但不能在您提供的字符串上工作。或者您可以使用函数os.path.dirname,它几乎是一样的,但更明确一点,实际上是一样的,但更明确一点:def dirnamep:返回路径名的目录组件返回splitp[0]
import re
result = re.sub(r'\\[a-z]*.txt', '', path)