我有一个train_file.txt,每行有 3 列。
例如;
1 10 1
1 12 1
2 64 2
6 17 1
...
Run Code Online (Sandbox Code Playgroud)
我正在阅读这个txt文件
train_data = open("train_file.txt", 'r').readlines()
Run Code Online (Sandbox Code Playgroud)
然后我试图用 for 循环获取每个值
for eachline in train_data:
uid, lid, x = eachline.strip().split()
Run Code Online (Sandbox Code Playgroud)
问题:训练数据是一个巨大的文件,这就是为什么我只想获取前 1000 行。
我试图执行以下代码,但出现错误(“list”对象不能解释为整数)
for eachline in range(train_data,1000)
uid, lid, x = eachline.strip().split()
Run Code Online (Sandbox Code Playgroud)
根本没有必要读取整个文件。您可以enumerate直接在文件上使用并提前中断或使用itertools.islice:
from itertools import islice
train_data = list(islice(open("train_file.txt", 'r'), 1000))
Run Code Online (Sandbox Code Playgroud)
您还可以继续使用相同的文件句柄稍后读取更多数据:
f = open("train_file.txt", 'r')
train_data = list(islice(f, 1000)) # reads first 1000
test_data = list(islice(f, 100)) # reads next 100
Run Code Online (Sandbox Code Playgroud)