Python 从文本文件每行的特定位置提取数据

Python 从文本文件每行的特定位置提取数据,python,loops,text-files,Python,Loops,Text Files,我正在使用以下我导入的文本文件,如下所示: 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:

我正在使用以下我导入的文本文件,如下所示:

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个位置的每一行提取值?

要对打开的文件对象使用
readlines
方法,然后切片行字符串:

with open('poverty.txt', 'r') as data:
    for line in data.readlines():
        print(line[49:57])

要对打开的文件对象使用
readlines
方法,然后切片行字符串:

with open('poverty.txt', 'r') as data:
    for line in data.readlines():
        print(line[49:57])
如果我正确理解了您的问题,您可以尝试以下方法:

In [01]: with open('something.txt', 'r') as data:
    ...:     for line in data:
    ...:         print(line[48:57])
您正在使用
来迭代
数据
,但随后在每个循环中查找49的数据,并一遍又一遍地读取相同的8个字符,以确定文件有多少行。

如果我正确理解了您的问题,您可以尝试以下方法:

In [01]: with open('something.txt', 'r') as data:
    ...:     for line in data:
    ...:         print(line[48:57])

您正在使用
遍历
数据
,但随后在每个循环中查找49的数据,并反复读取相同的8个字符,以确定文件有多少行。

如果您正在查找此数据的第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

如果要查找此数据的第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
readlines()
方法将数据拆分为一个元组,每行作为元组中的一项

打开('some_file.txt','r')作为文件:
lines=file.readlines()
对于行中的行:
f、 l=1,64#你想要的切片
打印(第[f:l]行)
方法
readlines()
将数据拆分为一个元组,每行作为元组中的一项

打开('some_file.txt','r')作为文件:
lines=file.readlines()
对于行中的行:
f、 l=1,64#你想要的切片
打印(第[f:l]行)