Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中获取“TypeError:字符串索引必须是整数”_Python_Python 3.x - Fatal编程技术网

在python中获取“TypeError:字符串索引必须是整数”

在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] 无论父目录的长度是多少,

我尝试在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]

无论父目录的长度是多少,都可以更好地工作:

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)