我在 .py 文件中有以下代码:
import re
regex = re.compile(
r"""ULLAT:\ (?P<ullat>-?[\d.]+).*?
ULLON:\ (?P<ullon>-?[\d.]+).*?
LRLAT:\ (?P<lrlat>-?[\d.]+)""", re.DOTALL|re.VERBOSE)
我将 .txt 文件中的数据作为一个序列:
QUADNAME: rockport_colony_SD
RESOLUTION: 10 ULLAT: 43.625 ULLON:
-97.87527466 LRLAT: 43.5 LRLON: -97.75027466 HDATUM: 27 ZMIN: 361.58401489 ZMAX: 413.38400269 ZMEAN: 396.1293335 ZSIGMA: 12.36359215 PMETHOD: 5 QUADDATE: 20001001
如何使用 Python 文件处理 .txt 文件?
我想我们需要在 .py 文件中有一个参数,这样我们就可以在终端中使用类似的语法:
$ py-file file-to-be-processed
这个问题是由帖子here提出的.
最佳答案
您需要读入文件,然后使用正则表达式搜索内容。 sys 模块包含一个列表 argv,其中包含所有命令行参数。我们拉出第二个(第一个是用来运行脚本的文件名),打开文件,然后读入内容。
import re import sys file_name = sys.argv[1] fp = open(file_name) contents = fp.read() regex = re.compile( r"""ULLAT:\ (?P-?[\d.]+).*? ULLON:\ (?P-?[\d.]+).*? LRLAT:\ (?P-?[\d.]+)""", re.DOTALL|re.VERBOSE) match = regex.search(contents)
参见 Python regular expression documentation有关可以使用匹配对象执行的操作的详细信息。参见 this part of the documentation为什么我们在扫描文件时需要搜索而不是匹配。
此代码将允许您使用您在问题中指定的语法。
关于python - 如何将文件名作为参数传递到我的模块中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/491085/