将文本中的数字读入python中的变量
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将文本中的数字读入python中的变量相关的知识,希望对你有一定的参考价值。
假设我有一个仅具有以下格式的文本文件,其中每一行都有两个数字,并用空格隔开:
2 4
66 99
11 67
1 3
这是我尝试执行的代码:
with open('text_file.txt') as file:
lines = []
for i in file:
lines.append(i)
print(lines)
我的代码的问题是它不断用数字打印“ n”,我不知道该如何解决我需要一种方法来仅读取最后一行中的两个数字并将每个数字存储在变量中,因此对于上面的示例:
var1 = 1
,var2 = 3
。
我需要一个多线程程序,在这里我正在测试三个线程之间的“竞争条件”,其中每个线程读取文本文件中的最后两个数字并读取最后一行数字,然后在其中打印thread_ip第一行,然后从上一行的第二行开始增加第二行并打印。
我不是在整个任务中寻求帮助,只是阅读/编写文本文件部分是我似乎无法弄清楚的。
答案
with open("example_file", "r") as fin:
var1, var2 = [int(i) for i in fin.readline().split()]
将最后两个数字存储在最后一行中:
with open("example_file", "r") as fin:
var1, var2 = [int(i) for i in fin.readlines()[-1].split()]
另一答案
因此izhang work当前接受的答案中的两个示例,但是它们都是有代价的...在第一个示例中,您不必要地遍历整个文件以到达最后一行。在第二个示例中,您必须将整个文件读入内存。如果处理大型数据集和/或在受约束的容器中运行,这绝对会成为问题。
更好的解决方案是向后读取文件,并在第一行读取后中断。从头开始并不是一件容易的事,但幸运的是,有一个针对此的模块。
from file_read_backwards import FileReadBackwards
with FileReadBackwards('text_file.txt') as f:
for l in f:
var1, var2 = l.split()
break
print(var1, var2)
以上是关于将文本中的数字读入python中的变量的主要内容,如果未能解决你的问题,请参考以下文章