Python 3.x 在Python中读取、返回和写入文本文件

Python 3.x 在Python中读取、返回和写入文本文件,python-3.x,Python 3.x,我陷入了一个我似乎无法理解的错误中。我制作的程序应该要求用户提供一个文本文件和数字。程序将在文本文件中搜索该编号,如果该编号存在,则应查找所有出现的编号并返回其行号。如果没有,则应将数字添加到文本文件中。你能帮我吗 我已经创建了用户输入和一个if语句,说明了如果找到,应该发生什么 这就是我所拥有的: 导入行缓存 def Q10(名称、编号): 打开(名称)作为填充: contents=infle.read() 如果目录中有数字: line_number=linecashe.getline(名称

我陷入了一个我似乎无法理解的错误中。我制作的程序应该要求用户提供一个文本文件和数字。程序将在文本文件中搜索该编号,如果该编号存在,则应查找所有出现的编号并返回其行号。如果没有,则应将数字添加到文本文件中。你能帮我吗

我已经创建了用户输入和一个if语句,说明了如果找到,应该发生什么

这就是我所拥有的:


导入行缓存
def Q10(名称、编号):
打开(名称)作为填充:
contents=infle.read()
如果目录中有数字:
line_number=linecashe.getline(名称、编号)
打印(编号,“在第行找到”,第_行编号)
Q10('Q10.txt',56)
这是我得到的错误:


TypeError:“in”需要字符串作为左操作数,而不是int

数字是一个整数,您需要将其转换为字符串。 您可以使用str(int)完成它,如我在代码中所示

import linecache

def Q10(name, number):

    with open(name) as infile:

        contents = infile.read()

        if str(number) in contents:

            line_number = linecashe.getline(name, number)

            print(number, "was found on line", line_number)

Q10('Q10.txt', 56)

数字是一个整数,您需要将其转换为字符串。 您可以使用str(int)完成它,如我在代码中所示

import linecache

def Q10(name, number):

    with open(name) as infile:

        contents = infile.read()

        if str(number) in contents:

            line_number = linecashe.getline(name, number)

            print(number, "was found on line", line_number)

Q10('Q10.txt', 56)

你能告诉我们你是如何打电话给Q10的吗?该错误似乎表明
number
可能是
int
而不是
string
,因此您可能必须在
if
语句之前进行转换。Q10('Q10.txt',56)将您的问题放在那里。对于那些试图帮助你的人来说,这比让他们在评论中搜索要有用得多。也就是说,您正在为
number
参数传递
56
。尝试将其作为字符串传递(
“56”
)或在
Q10
中转换它。我不是python专家,恐怕我不能马上告诉你怎么做。你能告诉我们你是如何调用
Q10
?该错误似乎表明
number
可能是
int
而不是
string
,因此您可能必须在
if
语句之前进行转换。Q10('Q10.txt',56)将您的问题放在那里。对于那些试图帮助你的人来说,这比让他们在评论中搜索要有用得多。也就是说,您正在为
number
参数传递
56
。尝试将其作为字符串传递(
“56”
)或在
Q10
中转换它。我不是python专家,恐怕我不能马上告诉你怎么做。