0

我有一个网络抓取工具,可以将抓取数据保存到 CSV 文件中。数据如下所示:

随机文本
约翰·梅
大街 1234 号
佐治亚州亚特兰大 30331
英亩 0.14 小
随机文本
简·琼斯
小街 4321 号
佐治亚州亚特兰大 30322
英亩 0.07 小
随机文本

我想:

(1) 在列中添加 Name,Street,,Address <--- 请注意,此示例由逗号分隔。

(2) 我想在上面发布的地址结果中添加逗号。一个例子是:

简琼斯
,4321 小街
,,亚特兰大, GA 30344
,,,英亩 0.07 小
,,,随机文本

请注意如何使用逗号将每一行推送到所需的列,同时将不需要的数据英亩 .07 小的随机文本从指定的列中推开。

我如何在python中做到这一点?我可以手动完成,但我正在处理数千个地址,我需要一种简单的方法在 python 中执行此操作。

是否可以在删除 if 后将所有数据拉入列表,并为逗号分配一个变量,如 a = 、 b = 、、 c = 、、,然后将变量连接到特定行中列表,然后再次保存?

另外,我还需要添加列信息:列名称、街道、地址

4

1 回答 1

2

我只是在猜测你在很多方面的意思,因为你的问题似乎缺少一些细节,但这应该会让你得到类似于你想要的东西:

import csv

with open('data.txt', 'r') as f:
    with open('data.csv', 'wb') as csv_out:
        line_iter = iter(l.rstrip('\n') for l in f)
        writer = csv.writer(csv_out)
        writer.writerow(['Name', 'Street', '', 'Address'])
        try:
            line_iter.next()    # discard 'random text' (?)
            while True:
                writer.writerow([line_iter.next(), '', '', ''])
                writer.writerow(['', line_iter.next(), '', ''])
                writer.writerow(['', '', line_iter.next(), ''])
                writer.writerow(['', '', '', line_iter.next()])
                writer.writerow(['', '', '', line_iter.next()])
        except StopIteration:
            pass        # reached end of file

它为上面的示例数据提供了以下输出:

名称、街道、地址
约翰·梅,,,
,1234 大街,,
,,"亚特兰大, GA 30331",
,,,英亩 0.14 小
,,,随机文本
简琼斯,,,
,4321 小街,,
,,"亚特兰大, GA 30322",
,,,英亩 0.07 小
,,,随机文本
于 2012-10-06T16:57:02.840 回答