問題解決了!是 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")所以我已經研究了一段時間,現在試圖弄清楚世界上正在發生什么,但無法到達那里。決定我會睡在上面,但會發布問題以防萬一。如果有人能指出可能出了什么問題,那就太棒了!或者告訴我編譯器只是愚蠢,我想那也行。
添加回答
舉報
0/150
提交
取消