Python读取文件:忽略首行,并逐个读取每一行的整数

201 阅读1分钟

缘由

《算法4th》中用的StdIn的readInt()可以逐个读取整数,想要用python实现这样的方法。

数据格式:tinyUF.txt

10
0 1
2 3
4 5
6 7
8 9

第一行的10,表示有十个整数。 需将每一行,例如第二行的0,1分别放入列表p,q。

分析

  1. 若使用eval,暂且不考虑能不能正确提取第二行的两个整数,假设可以正确提取到,但是将0,1分别存储到p,q时,需要使用列表切片。
  2. 使用列表迭代,将迭代结果一次压入p,q中。

跳过首行

采用第二种方法,但存在问题:首行迭代报错(因为只有一个整数),所以就要跳过首行再迭代。

跳过首行读取技巧:不使用readlines(),而是readline()

file = open("tinyUF.txt", "r")
first_row = file.readline() # line指针已经指向下一行

x = []
y = []

for line in file:
    nums = iter(line.split(" "))
    x.append(nums.__next__().strip())
    y.append(nums.__next__().strip())