从文本文件中提取美式街道地址的脚本。

address_extractor的Python项目详细描述


从文本文件中提取美式街道地址的脚本

$ address_extractor
1600 Pennsylvania Ave NW, Washington, DC 20500 ^D
1 lines in input
,1600 Pennsylvania Ave NW,Washington DC 20500
$ address_extractor -o output.csv input.csv
4361 lines in input
*snip*
11 lines unable to be parsed
$ ls
output.csv

address_extractor获取包含类似地址的数据的文本或文本文件,每行一个地址,并使用usaddress包将其解析为统一格式。

安装

pypi通过pip

pip install address_extractor

这将安装模块以及命令行脚本address_extractor

命令行用法

address_extractor [-h] [-o OUTPUT] [--remove-post-zip] [input]

positional arguments:
  input                 the input file. Defaults to stdin.

optional arguments:
  -h, --help            show this help message and exit
  -o OUTPUT, --output OUTPUT
                        the output file. Defaults to stdout.
  --remove-post-zip, -r
                        when scanning the input lines, remove everything after
                        a sequence of 5 digits followed by a comma. The
                        parsing library used by this script chokes on
                        addresses containing this kind of information, often a
                        county name.

无法解析的行将被打印到STDERR。可以使用标准的bash重定向技术将它们保存到文件中:

$ address_extractor -o good_addresses.csv has_some_bad_addresses.txt 2> bad_addresses.txt

作为模块使用

address_extractor可以用作python模块:

>>> import address_extractor
>>> address_extractor.main(input=input_file_object, output=output_file_object, remove_post_zip=a_bool)

此实现存在一些小问题:

  • 如果分别使用sys.stdinsys.stdout作为输入或输出,则文件对象仍将关闭。这就给将来尝试使用它们带来了问题。
  • 错误的行仍然打印到sys.stderr,这可能不是预期的。

版本和稳定性

此包作为0.1.0版本上载。没有测试和很少的错误检查——它起源于一个快速脏脚本,我决定将它作为一个包发布,以熟悉这个过程。

欢迎在github页面上提出问题、评论和请求!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
jframe为什么JAVA paint()方法不起作用?   java Guice:将ContainerRequestContext注入拦截器   java如何优雅地关闭Spring JMS MessageListenerAdapter   java如何在Spring中设置快照隔离级别   Java中的安卓平台独立信任存储路径   java无法在eclipse中运行hello world程序   java Sinch空指针问题   使用Java将JSON流式传输到BigQuery   java从“大数据”中选择什么Swing控件?   java通过对象字段过滤/排序集合?   java将数据从活动传递到另一个活动中的片段   java访问打包在jar文件中的文档   Java获取事件的大小。getDragboard()。getFiles()。流()。映射(文件::长度)。toString());   java Android libgdx:启动程序图标按下后,启动屏幕不会立即显示   java如何在Google App Engine灵活环境中配置oracle jdk   java有没有办法减少这些行?   Java:客户端socket不读取第二行,在终止符行之后保持打开状态   java以编程方式获取api 29上的所有APK文件   java ActionBar按钮不显示