我正在使用以下导入的文本文件:
url = 'https://www2.census.gov/programs-surveys/saipe/datasets/2016/2016-state-and-county/est16all.txt'
url_get.urlretrieve(url, 'poverty.txt')
我想从位置49开始提取每行文本文件的一部分,最大字符数为8。所以我尝试以下操作:
with open('poverty.txt', 'r') as data:
for line in data:
data.seek(49)
print(data.readline(8))
但是,输出仅重复txt
文件第一行中的值作为文件中的行数。这显然是不正确的。
14115713
14115713
14115713
14115713
14115713
14115713
14115713
14115713
如何构造循环以从每条行的第50个位置提取值?
答案 0 :(得分:0)
您要在打开的文件对象上使用readlines
方法,然后对行字符串进行切片:
with open('poverty.txt', 'r') as data:
for line in data.readlines():
print(line[49:57])
答案 1 :(得分:0)
如果我正确理解了您的问题,则可以尝试以下操作:
In [01]: with open('something.txt', 'r') as data:
...: for line in data:
...: print(line[48:57])
您正在使用line
遍历data
,但是随后您要在每个循环中将数据查找到49,并一次又一次地读取相同的8个字符,以了解文件有多少行。
答案 2 :(得分:0)
如果您正在寻找该数据的第9个元素,则可以使用
with open('est16all.txt') as fd:
for line in fd:
print (line.split()[8])
或者说如果您要使用49到49 + 8的切片,那么
with open('est16all.txt') as fd:
for line in fd:
print (line[49:49+8].lstrip())
输出样本:
[root@bazooka2 ha_vxt]# python find_missing.py | more
14115713
267674
2588
7881
2146
1263
2568
995
答案 3 :(得分:0)
readlines()
方法将数据分成一个元组,每一行都作为元组中的一项。
with open('some_file.txt','r') as file:
lines = file.readlines()
for line in lines:
f,l = 1, 64 # the slice you want to take
print(line[f:l])