python - 如何从python中的文本文件中打印特定行
问题描述
我已经编写了代码,可以让我在行中写入数字,但是现在,在我得到的所有数字中,我必须进行比较。打印可以被 2 整除的那些到目前为止,这就是我得到的:
i = 0
x = 1
y = 0
z = 20
My_file = open("Numbers", 'w')
while i < z:
My_file.write(str(x))
My_file.write("\n")
x = x + 1
i = i + 1
My_file.close()
i = 0
My_file = open("Numbers", 'r')
for line in My_file:
if int(My_file.readline(y)) % 2 == 0:
print(My_file.readline(y))
y = y + 1
最重要的部分工作,我的问题是一个int(My_file.readline(y)) % 2 == 0
废话,它说:
invalid literal for int() with base 10: ''.
解决方案
根据以前的答案,这是一个完整的示例:
start_value = 1
max_value = 12
filename = "numbers"
with open(filename, "w") as my_file:
value = start_value
while value <= max_value:
my_file.write(f"{value}\n")
value += 1
with open(filename, "r") as my_file:
lines = my_file.readlines()
for line in lines:
line = line.strip()
if int(line) % 2 == 0:
print(line)
此代码使用 python 的“上下文管理器”(with
关键字)。与 一起使用open()
,它可以很好地处理文件的关闭。
您的错误来自\n
每个数字末尾的 a。str
从to的转换int
不起作用,因为解释器无法找到如何转换此字符。
作为一个好习惯,使用有意义的变量名称,当你在这里提问时更是如此:它可以帮助人们更快地理解代码。
推荐阅读
- go - 如何使用 for 循环创建对象切片
- jvm - ActiveMQ 命令:无法分配内存
- svn - PhpStorm 显示 SVN 而不是真实的文件夹名称
- javascript - 有没有办法添加外部 DOM 对象(即) 到一个阶段或层?
- javascript - 如何将签名附加到文件?
- jquery - 如何修复忽略/未针对特定 ID 执行 jQuery 隐藏功能的脚本
- python - 有没有办法在 PDB 文件中分离属于每个生物程序集的链?(python 脚本)
- batch-file - 批处理文件中的开关盒运行异常
- powershell - 将字符串中的日期与当前日期进行比较
- python - 如何在python 3.x中调用同一类的命名空间内的类方法