如何从python中的文本文件中提取特定内容?

用户名

geonames此链接上使用邮政编码数据文件来自上述文件的示例数据如下:

IT  67010   Barete  Abruzzi AB  L'Aquila    AQ          42.4501 13.2806 4
IT  67012   Cagnano Amiterno    Abruzzi AB  L'Aquila    AQ          42.4574 13.2279 4
IT  67012   San Giovanni    Abruzzi AB  L'Aquila    AQ          42.4642 13.2584 4
IT  67013   Mascioni    Abruzzi AB  L'Aquila    AQ          42.5282 13.3492 4
IT  67013   Campotosto  Abruzzi AB  L'Aquila    AQ          42.5588 13.368  4
IT  67013   Poggio Cancelli Abruzzi AB  L'Aquila    AQ          42.5623 13.327  4
IT  67013   Ortolano    Abruzzi AB  L'Aquila    AQ          42.5193 13.4238 4
IT  67014   Capitignano Abruzzi AB  L'Aquila    AQ          42.5204 13.3012 4
IT  67015   Montereale  Abruzzi AB  L'Aquila    AQ          42.5233 13.2459 4
IT  67015   Marana Di Montereale    Abruzzi AB  L'Aquila    AQ          42.4967 13.2236 4
IT  67015   San Giovanni Paganica   Abruzzi AB  L'Aquila    AQ          42.5057 13.2762 4
IT  67015   Aringo  Abruzzi AB  L'Aquila    AQ          42.5554 13.2671 4
IT  67015   Ville Di Fano   Abruzzi AB  L'Aquila    AQ          42.5248 13.1864 4
IT  67015   Cesaproba   Abruzzi AB  L'Aquila    AQ          42.4985 13.1864 4
IT  67015   Marana  Abruzzi AB  L'Aquila    AQ          42.4967 13.2236 4

在上述文件中,每行的第二部分(之后的5位数字代码IT)是邮政编码。每行的倒数第二个和倒数第二个字段(最后两个浮点数)是纬度和经度。

我正在尝试提取这三个字段,并且遇到一些困难,尤其是对于纬度和经度部分。这是我到目前为止编写的代码:

    zip_code = ''
    latitude = ''
    longitude = ''
    file1 = open("IT.txt", "r")
    for line in file1:
        line = line.rstrip('\n')
        zip_code = line[3:8]
        latitude = line[-17:-10]
        longitude = line[-9:-2]
        print(latitude)
        print(longitude)

以下是经度和纬度的一些示例输出:

纬度

42.4501
42.4574
42.4642
42.5282
    42.558
    42.562
42.5193
42.5204

经度

13.2806
13.2279
13.2584
13.3492
    13.368
    13.327
13.4238
13.3012

可以的是,某些经纬度不是标准长度(大多数经纬度在小数点后有4位数字,但有些只有3位)。这会导致格式不正确的问题。如何从上述文件的每一行中提取纬度和经度字段?

勒汗9

你很亲密!

我只建议直接建立索引,因为您知道它们在哪一列,而不是尝试通过切片来解析:

with open('data.txt', 'r') as f:
    data = f.readlines()


for line in data:
    line_sequence = line.split()

    zipcode, lat, long = line_sequence[1], line_sequence[-2], line_sequence[-3]

    print zipcode, lat, long

输出:

67010 13.2806 42.4501
67012 13.2279 42.4574
67012 13.2584 42.4642
67013 13.3492 42.5282
67013 13.368 42.5588
67013 13.327 42.5623
67013 13.4238 42.5193
67014 13.3012 42.5204
67015 13.2459 42.5233
67015 13.2236 42.4967
67015 13.2762 42.5057
67015 13.2671 42.5554
67015 13.1864 42.5248
67015 13.1864 42.4985
67015 13.2236 42.4967

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用findall函数从python中的文本文件中提取特定的url

如何在Python中从文本文件中提取特定数据?

如何从文本文件中提取特定值?

如何从文本文件中提取特定的值/字段?

如何从文本文件中提取特定的目标编号

Python从文本文件中提取特定数字

从文本文件中提取行的特定PIECE(Python)

使用 python 从文本文件中提取特定行

如何从C#中的文本文件中提取特定文本

使用python从文本文件中的特定模式中提取文本

如何在Linux中从文本文件中提取任意标签并测量内容长度

如何从 Makefile 中的文本文件中提取值?

从python 3中的文本文件中提取数据

在 Python 中匹配和从文本文件中提取

从 Python 中的文本文件中提取句子

在 Python 中提取 JSON 文本文件中的值

从python中的文本文件中提取信息

如何使用Python从文本文件中提取特定数据并写入CSV

如何从文本文件中的字符串中提取特定单词?C ++

在python中从文本文件的一行中提取特定单词

如何从 Python 文本文件中的一行中提取数字

如何从文本文件中提取数据到python中的二维数组

如何提取文本文件中的特定行

如何使用 Python 将多个文本文件的内容提取到 Pandas 数据框中?

如何从文本文件中删除特定内容?

JavaScript中的承诺/提取:如何从文本文件中提取文本

从文本文件中提取特定字符串

使用PHP从文本文件中提取特定信息

从文本文件中提取特定记录