【问题标题】:Receiving Type Error: Integer argument expected got 'str'接收类型错误:整数参数预期得到'str'
【发布时间】:2016-11-21 03:09:07
【问题描述】:

我试图获取一个文件并为包含整数和字符串组合的文件的每一行创建一个单独的列表,但我收到此错误,TypeError: integer argument expected, got 'str'。为什么?

def main ():

    #open files allstar, playoffs, and regular season and create list by lines
        with open("C:\\Users\\wittn\\OneDrive\\Documents\\Project\\databasebasketball20_1\\player_regular_season.txt", "r") as reg_season:

            lst = list()

            for list_lines in reg_season : 

                line = reg_season.readlines(list_lines.strip())
                words = line.split (",")
            lst = [words]
        print (lst)            
main () 

【问题讨论】:

  • 欢迎来到 Stack Overflow。也许你可以解释一下认为你的程序的每一行在做什么。此外,请务必提及哪一行引发了异常。您的调试器或 Python 解释器应该已经告诉您该信息,这是您问题中包含的关键信息。
  • @RobKennedy 对,我读代码有点太快了

标签: python typeerror openfiledialog


【解决方案1】:

从文件中读取时,它会将其作为字符串加载,使用 int() 将其转换为整数

如果您不知道什么是整数,什么是字符串,请尝试使用类似的内容,替换 lst=[words]

words = line.split(",")
lst = []
for word in words:
    try:
        lst.append(int(word))
    except:
        lst.append(word)

此算法尝试将每个单词转换为 int,如果不能将其保存为字符串

您的错误正在发生,因为当从文件中读取时,它会将所有内容都读取为字符串,您需要手动转换为 int

希望对你有帮助

【讨论】:

  • this 代码应该放在原始代码的什么位置?你能解释一下为什么它会解决报告的错误吗?
猜你喜欢
  • 2019-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-30
  • 2015-08-26
  • 1970-01-01
  • 2019-08-28
相关资源
最近更新 更多