为了账号安全,请及时绑定邮箱和手机立即绑定

Python奇怪的“字符串索引必须是整数”错误

Python奇怪的“字符串索引必须是整数”错误

倚天杖 2023-03-22 16:09:42
问题解决了!是 newfilename[0,3] 而不是 newfilename[0: 3]我知道之前有人问过这个问题,我查看了所有答案以及人们遇到的与此错误消息相关的问题类型,但找不到遇到相同类型问题的人。我正在播种整个方法以防万一。所以这是我的问题;当我尝试使用newfilename[int, int] 获取“newfilename”的子字符串时,编译器一直认为我在那里没有整数,至少从我的检查来看是这样。我用这段代码做了什么:我正在剪切一个文件名的末尾,例如“foo.txt”,以获得保存为新文件名的“foo”。然后我将数字(转换为字符串)添加到它的末尾以获得“foo 1”,然后添加回“.txt”以获得“foo 1.txt”的最终结果。当我尝试取出子字符串并删除文件名的最后四个字符以仅获取“foo”时,就会出现问题。之后,我再次检查文件夹中是否还有这样的文件,如果有,我再进行另一组剪切和粘贴操作,将 1 添加到前一个文件中。老实说,我还没有测试过 while 循环是否可以工作,我只是认为它在技术上应该可以工作,但是由于这个错误,我的代码没有达到那么远,哈哈。我的错误:File "C:/Users/Reaper/IdeaProjects/Curch Rec Managment/Setup.py", line 243, in moveFiles    print(newfilename[0, 3])TypeError: string indices must be integers注意这个错误来自于我试图硬编码数字以查看它是否有效这是硬代码被注释掉的当前错误:    newfilename = newfilename[0, int(newfilename.__len__() - 4)] + " 1.m4a"TypeError: string indices must be integers我尝试过的方法:我尝试通过字面输入 newfilename[0, 7] 来对数字进行硬编码,但仍然出现相同的错误。我试过在一个单独的 python 文件中执行此操作,它似乎在那里工作正常。此外,真正让我感到困惑的是它在我程序的另一部分中工作得很好,如下所示: nyear = str(input("Enter new Year: ")) if nyear[0:2] != "20" or nyear.__len__() > 4:     print("Sorry incorrect year. Please try again")所以我已经研究了一段时间,现在试图弄清楚世界上正在发生什么,但无法到达那里。决定我会睡在上面,但会发布问题以防万一。如果有人能指出可能出了什么问题,那就太棒了!或者告诉我编译器只是愚蠢,我想那也行。
查看完整描述

1 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

我认为你需要这个:

print(newfilename[0:3])


查看完整回答
反对 回复 2023-03-22
  • 1 回答
  • 0 关注
  • 122 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信