Python 匹配与拆分
我有一个包含以下内容的文件1:Python 匹配与拆分,python,python-3.x,regex,split,Python,Python 3.x,Regex,Split,我有一个包含以下内容的文件1: 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行中,它给出了一个错误说明
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行中,它给出了一个错误说明
缩进错误:文件1的第3行出现意外缩进。有人能帮我吗?你可以试试这个:
with open(path) as f:
data = f.read()
unit = [line.strip().split(" ") for line in data.split("\n")]
print(unit)
输出:
[['abc_1', '(qst_0)', 'bndk'],
['cgn32', '(mn_r_1)', 'mncp'],
['dmj_2', '(yst)', 'pr1f']]
什么是缩进错误
- python中的缩进错误是指空格语法错误
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))
(或)
注:
- 你没有提到你想在什么基础上分割线。是用空格“u”还是“)”
- 你当前的正则表达式不能做到这一点
打开(…)
?是的,它是一个文本文件我无法更改该文件如何更改我的正则表达式以使其与两者匹配patterns@abcd,如何在python中加载文本文件?你能说明缩进错误是在文件中而不是代码中吗
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)