[英]matching and splitting
我有一个包含内容的 file1:
abc_1 (qst_0) bndk
cgn32 (mn_r_1) mncp
dmj_2 (yst) pr1f
我想逐行匹配和拆分文件。 我使用以下代码:
path = sys.argv[1]
with open(path) as f:
data = f.read()
unit = re.split(r"(.+\(.*\).+)", data)
print(*unit)
它能够拆分前 2 行,但在第 3 行它给出了一个错误,说 IndentationError: Unexpected Indent at line 3 of file1。 你能帮我吗?
你可以试试这个:
with open(path) as f:
data = f.read()
unit = [line.strip().split(" ") for line in data.split("\n")]
print(unit)
output:
[['abc_1', '(qst_0)', 'bndk'],
['cgn32', '(mn_r_1)', 'mncp'],
['dmj_2', '(yst)', 'pr1f']]
什么是缩进错误?
在第 3 行data=f.read()
中,您没有正确遵循语法。 因此,在这种情况下,您的代码甚至没有执行输入文件中的任何一行。
在使用 python 时,确保一个块中有 4 个空格。 以下应该工作。
import re
import sys
path = sys.argv[1]
with open(path) as fp:
for line in fp:
print (re.split(r"(.+\(.*\).+)", line))
(或者)
import re
import sys
path = sys.argv[1]
with open(path) as fp:
split_lines = [re.split(r"(.+\(.*\).+)", line) for line in fp]
print(split_lines)
笔记:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.