Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.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从文件读取列表并在空闲时打印回错误_Python_Python 3.x - Fatal编程技术网

Python从文件读取列表并在空闲时打印回错误

Python从文件读取列表并在空闲时打印回错误,python,python-3.x,Python,Python 3.x,当我试图读取一个文件时,我得到了一个恼人的错误,我认为这和变量的列表格式有关,但我不确定 如果有人能帮助解决这个问题,那就太好了。 我认为这也与\n被打印在列表末尾有关 这是我的代码: 选择1 函数file.readlines()不接受行数参数,它一次读取文件的所有行。(对于记录,如果您确实传递了一个参数,如file.readlines(n),则该参数n是关于要读取的字节数的“提示”…更多信息,请访问此处) 编辑:我已经更新了代码,以处理字符串列表中的nums。 编辑2:更新代码以反映@note

当我试图读取一个文件时,我得到了一个恼人的错误,我认为这和变量的列表格式有关,但我不确定

如果有人能帮助解决这个问题,那就太好了。 我认为这也与\n被打印在列表末尾有关

这是我的代码:

选择1
函数
file.readlines()
不接受行数参数,它一次读取文件的所有行。(对于记录,如果您确实传递了一个参数,如
file.readlines(n)
,则该参数
n
是关于要读取的字节数的“提示”…更多信息,请访问此处)

编辑:我已经更新了代码,以处理字符串列表中的
nums

编辑2:更新代码以反映@notevenError删除方括号和引号的方法

编辑3:重新简化…当我在文本编辑器中打开输入文件时,我确实看到:

['the', 'dog', 'cat']
[1, 1, 1, 2, 1, 3]

如果输入不正确,则此代码可能不起作用。

函数
file.readlines()
不带行数参数,它一次读取文件的所有行。(对于记录,如果您确实传递了一个参数,如
file.readlines(n)
,则该参数
n
是关于要读取的字节数的“提示”…更多信息,请访问此处)

编辑:我已经更新了代码,以处理字符串列表中的
nums

编辑2:更新代码以反映@notevenError删除方括号和引号的方法

编辑3:重新简化…当我在文本编辑器中打开输入文件时,我确实看到:

['the', 'dog', 'cat']
[1, 1, 1, 2, 1, 3]
如果输入不正确,则此代码可能不起作用。

读取行(1)返回的是单个元素列表,元素是字符串。要执行的操作是获取字符串本身并替换“\n”、“[”、“]”等

试一试
words[0]。strip(“\n][”)。replace(“,”)。split(“,”)

什么
文件。readlines(1)
返回的是单个元素列表,元素是字符串。您要做的是获取字符串本身并替换“\n”、“[”、“]”等

试一试
words[0]。strip(“\n][”)。replace(“,”)。split(“,”)
您在[words[i-1]处遇到异常,因为我是str,您可以执行-:“str”和“int”

>>> i = '1'
>>> i -1

Traceback (most recent call last):
  File "<pyshell#101>", line 1, in <module>
    i -1
TypeError: unsupported operand type(s) for -: 'str' and 'int'

您在[words[i-1]处遇到异常,因为我是str,您可以执行-:'str'和'int'

>>> i = '1'
>>> i -1

Traceback (most recent call last):
  File "<pyshell#101>", line 1, in <module>
    i -1
TypeError: unsupported operand type(s) for -: 'str' and 'int'


您没有列表-您有看起来像列表的字符串转换为字符串。您必须更改将该列表保存在文件中的函数。
nums
不是带数字的列表,而是带字符串的列表。您不能从
i
中减去1,后者是字符串(或字符)。
print(i,type(i))
看看你有什么。你有一些问题。1)
readlines()
接受一个参数,它接受字节数,而不是行号2)您试图读取返回列表中的元素,就好像它只是一个字符串3)您试图使用
i
作为一个int,当它是一个string时,您可以在一些示例代码中使用正确的术语,以便我更好地理解它吗?您没有list-您的字符串看起来像列表转换为字符串。您必须更改将该列表保存在文件中的函数。
nums
不是带数字的列表,而是带字符串的列表。您不能从
i
中减去1,后者是字符串(或字符)。
print(i,type(i))
看看你有什么。你有一些问题。1)
readlines()
接受一个参数,它接受字节数,而不是行号2)您试图读取返回列表中的元素,就好像它只是一个字符串3)您试图使用
i
作为一个int,当它是一个string时,您可以在一些示例代码中使用正确的术语,以便我能更好地理解它吗?我仍然在理解e同样的错误,还有其他建议吗?@Tom my sugestion:首先使用
json
以更有用的形式保存此列表。然后使用
json
从文件中读取此列表。现在文件中有无用的文本。我对json不熟悉还有其他建议或方法吗?这是我现在的错误:AttributeError:“list”对象没有属性“split”@Tom:对不起,我的错,我忘了nums()是文件的多行…我将修复。我仍然收到相同的错误,还有其他建议吗?@Tom my sugestion:首先使用
json
以更有用的形式保存此列表。然后使用
json
从文件中读取此列表。现在文件中有无用的文本。我不熟悉json的任何建议或方法?这是我的错误现在:AttributeError:'list'对象没有属性'split'@Tom:对不起,我的错,我忘了nums()是文件的多行…我会修复。我得到错误:remade_句子=''。join([words[int(I)-1]代表nums中的I])ValueError无效的literal for int(),基数为10:“[1,1,2,1,3]”这意味着我是包含类似字符的str[',读取文件的方式有点问题。我得到了错误:remade_语句=''。join([words[int(I)-1]表示以nums表示的I])ValueError:invalid literal for int()以10为底:“[1,1,1,2,1,3]”这意味着我是str,它包含类似char的'[',您读取文件的方式有问题。这是将单词转换为字符串列表这一特定问题的正确答案。它不处理数字的整数转换,因此我将相应地更新代码(但请给@notevenError一个向上投票)这是将单词转换为字符串列表这一特定问题的正确答案。它不处理数字的整数转换,因此我将相应地更新代码(但请给@notevenError一个向上投票)
remade_sentence = ''.join([words[int(i)-1] for i in nums])