Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 匹配与拆分_Python_Python 3.x_Regex_Split - Fatal编程技术网

Python 匹配与拆分

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行中,它给出了一个错误说明

我有一个包含以下内容的文件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行中,它给出了一个错误说明 缩进错误:文件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中的缩进错误是指空格语法错误
在第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))
(或)

注:

  • 你没有提到你想在什么基础上分割线。是用空格“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)