使用 re 模块从 python 中的文本文件中获取数据
Fetching data from a text file in python using re module
我有一个名为 file.txt
的文本文件
如下所示:
0, 1, 2. |classes
A0: 1, 2, 3
A1: 1, 2, 3
A2: 1, 2, 3
A3: 1, 2, 3, 4
| Final Pseudo Deletion Count is 0. Optimisaiton not possible.
我只想从这个文件中取出属性名称:A0、A1、A2、A3。我该怎么做?
我的意思是对于这个特定文件它只是 A0,A1,A2,A3
但我想要一般文件的输出。可以有A0,A1.....An
。如下所示:
0, 1, 2. |classes
A0: 1, 2, 3
A1: 1, 2, 3
A2: 1, 2, 3
A3: 1, 2, 3, 4
A4: 1, 2, 3
A5: 1, 2, 3, 4
| Final Pseudo Deletion Count is 0. Optimisaiton not possible.
所以在这种情况下,输出将包含 A0, A1, A2, A3, A4, A5
。
我已经试过了:
f = open('filename1.txt')
attrib1 = f.readline()
attrib = []
for i in range(1, len(attrib1)-1):
v_pos_colon = attrib1[i].find(':')
attrib.append(attrib[i][0:v_pos_colon])
print(attrib)
您正在遍历文件第一行中的字符,而不是遍历文件的行。
find()
returns -1
当找不到字符串时。因此,当行中没有 :
时,您将添加切片 attrib[i][0:-1]
,它将所有内容切片到倒数第二个字符。您应该首先测试是否找到了字符。
attrib = []
with open('filename1.txt') as f:
for line in f:
if ':' in line:
attrib.append(line.split(':')[0])
print(attrib)
我有一个名为 file.txt
的文本文件
如下所示:
0, 1, 2. |classes
A0: 1, 2, 3
A1: 1, 2, 3
A2: 1, 2, 3
A3: 1, 2, 3, 4
| Final Pseudo Deletion Count is 0. Optimisaiton not possible.
我只想从这个文件中取出属性名称:A0、A1、A2、A3。我该怎么做?
我的意思是对于这个特定文件它只是 A0,A1,A2,A3
但我想要一般文件的输出。可以有A0,A1.....An
。如下所示:
0, 1, 2. |classes
A0: 1, 2, 3
A1: 1, 2, 3
A2: 1, 2, 3
A3: 1, 2, 3, 4
A4: 1, 2, 3
A5: 1, 2, 3, 4
| Final Pseudo Deletion Count is 0. Optimisaiton not possible.
所以在这种情况下,输出将包含 A0, A1, A2, A3, A4, A5
。
我已经试过了:
f = open('filename1.txt')
attrib1 = f.readline()
attrib = []
for i in range(1, len(attrib1)-1):
v_pos_colon = attrib1[i].find(':')
attrib.append(attrib[i][0:v_pos_colon])
print(attrib)
您正在遍历文件第一行中的字符,而不是遍历文件的行。
find()
returns -1
当找不到字符串时。因此,当行中没有 :
时,您将添加切片 attrib[i][0:-1]
,它将所有内容切片到倒数第二个字符。您应该首先测试是否找到了字符。
attrib = []
with open('filename1.txt') as f:
for line in f:
if ':' in line:
attrib.append(line.split(':')[0])
print(attrib)