Python:在文本文件中找到一个字符串,如果整数在同一行中,则打印它>;1.
我需要编写一个脚本,检查一个文件的eeg通道阻抗是否高于1,并在屏幕上返回这些通道名称。我不知道怎么做,因为频道名称也有一个整数 文本文件中通道和整数的格式示例Python:在文本文件中找到一个字符串,如果整数在同一行中,则打印它>;1.,python,Python,我需要编写一个脚本,检查一个文件的eeg通道阻抗是否高于1,并在屏幕上返回这些通道名称。我不知道怎么做,因为频道名称也有一个整数 文本文件中通道和整数的格式示例 Fp1: 4 Fp2: 1 F7: 0 def read_text(in_file): f = open(in_file,'r') line = f.readlines() f.close() channel = ['Fp1:', 'Fp2:',
Fp1: 4
Fp2: 1
F7: 0
def read_text(in_file):
f = open(in_file,'r')
line = f.readlines()
f.close()
channel = ['Fp1:', 'Fp2:', 'F7:', 'F3:', 'Fz:', 'F4:', 'F8:', 'FC5:', 'FC1:',
'FC2:', 'FC6:', 'T7:', 'C3:', 'Cz:', 'C4:', 'T8:', 'VEOG:', 'CP5:',
'CP1:', 'CP2:', 'CP6:', 'AFz:', 'P7:', 'P3:', 'Pz:', 'P4:', 'P8:',
'PO9:', 'O1:', 'Oz:', 'O2:', 'PO10:', 'AF7:', 'AF3:', 'AF4:', 'AF8:',
'F5:', 'F1:', 'F2:', 'F6:', 'FT7:', 'FC3:', 'FC4:', 'FT8:', 'C5:',
'C1:', 'C2:', 'C6:', 'TP7:', 'CP3:', 'CPz:', 'CP4:', 'TP8:', 'P5:',
'P1:', 'P2:', 'P6:', 'PO7:', 'PO3:', 'POz:', 'PO4:', 'PO8:', 'Gnd:',
'Ref:']
for x in channel:
??????
return()
在我的代码中,我创建了一个通道列表,并在eeg通道后使用分号,因为它是唯一用文本文件其余部分的阻抗值定义通道的东西
Fp1: 4
Fp2: 1
F7: 0
def read_text(in_file):
f = open(in_file,'r')
line = f.readlines()
f.close()
channel = ['Fp1:', 'Fp2:', 'F7:', 'F3:', 'Fz:', 'F4:', 'F8:', 'FC5:', 'FC1:',
'FC2:', 'FC6:', 'T7:', 'C3:', 'Cz:', 'C4:', 'T8:', 'VEOG:', 'CP5:',
'CP1:', 'CP2:', 'CP6:', 'AFz:', 'P7:', 'P3:', 'Pz:', 'P4:', 'P8:',
'PO9:', 'O1:', 'Oz:', 'O2:', 'PO10:', 'AF7:', 'AF3:', 'AF4:', 'AF8:',
'F5:', 'F1:', 'F2:', 'F6:', 'FT7:', 'FC3:', 'FC4:', 'FT8:', 'C5:',
'C1:', 'C2:', 'C6:', 'TP7:', 'CP3:', 'CPz:', 'CP4:', 'TP8:', 'P5:',
'P1:', 'P2:', 'P6:', 'PO7:', 'PO3:', 'POz:', 'PO4:', 'PO8:', 'Gnd:',
'Ref:']
for x in channel:
??????
return()
您的文件如何分隔条目,是每行一个条目还是逗号分隔 例如,如果您每行有一个条目,例如
Fp1: 4
Fp2: 0
F7: 10
您可以查看这些行,并将其拆分为:
with open(filename, "r") as f:
for line in f:
channel, value = line.split(":") # would create a list ["Fp1", "4"]
if int(value) > 1:
print(channel)
# do something else with channel
>> Fp1
>> F7
在本例中,它将同时打印Fp1和F7,但不打印Fp2。我不知道我是否完全理解您的要求,但是,如果您想读取“F1:4”行,然后存储它,您可以使用dict 比如: 如果您想要一个“漂亮”的输出,您可以这样做,而不是“打印数据”:
for key in data.keys():
print str(key) + " -> " + str(data[key])
此外,如果您不想显示“:”字符,可以将“line.split()”更改为“line.split(:”),然后将“.strip()”添加到“s[1]”中。最好再准备一些数据文件格式,而不是只在单个大数据块中读取它。一些
split
s可能会使它更易于管理。这样做的同时,您可能也会了解如何继续。对于您感兴趣的行,行是否以频道和冒号开头?@ChrisDoyle是的,行以频道和冒号开头。