如何在Python中读取字符串的一部分?
我有一个包含文件夹和文件的数据库。我设法读取文件并获得包含如何在Python中读取字符串的一部分?,python,file,Python,File,我有一个包含文件夹和文件的数据库。我设法读取文件并获得包含montage单词的特定行 montage=0,FP1-F7:EEG FP1-REF——EEG F7-REF 蒙太奇=1,F7-T3:EEG F7-REF——EEG T3-REF 蒙太奇=2,T3-T5:EEG T3-REF——EEG T5-REF 蒙太奇=3,T5-O1:EEG T5-REF——EEG O1-REF 现在,我想能够提取逗号和双点之间的内容(即,FP1-F7,F7-T3,…),但我不知道怎么做 此外,为什么打印命令会在两行
montage
单词的特定行
montage=0,FP1-F7:EEG FP1-REF——EEG F7-REF
蒙太奇=1,F7-T3:EEG F7-REF——EEG T3-REF
蒙太奇=2,T3-T5:EEG T3-REF——EEG T5-REF
蒙太奇=3,T5-O1:EEG T5-REF——EEG O1-REF
现在,我想能够提取逗号和双点之间的内容(即,FP1-F7
,F7-T3
,…),但我不知道怎么做
此外,为什么打印
命令会在两行之间显示一个“空格”(下面没有显示,而是实数)?使用Regex
import re
s = """montage = 0, FP1-F7: EEG FP1-REF -- EEG F7-REF
montage = 1, F7-T3: EEG F7-REF -- EEG T3-REF
montage = 2, T3-T5: EEG T3-REF -- EEG T5-REF
montage = 3, T5-O1: EEG T5-REF -- EEG O1-REF """
for i in s.splitlines():
m = re.search(r",(.*?):", i) #Get content between , and :
if m:
print(m.group(1).strip())
输出:
FP1-F7
F7-T3
T3-T5
T5-O1
获取您想要的令牌(注意:这适用于您提供的示例,如果在显示的点之前还有其他逗号或冒号,这将不起作用): 您也可以使用regex来实现这一点,但对于这种情况,IMO认为这是过度杀戮 然后可以通过列表理解获取令牌列表:
tokens = [parse_line(l) for l in lines]
其中,
行
是要分析的行列表(或者,如果您从文本文件中读取,则文件对象本身)打印
默认情况下会在末尾追加一个新行,如果字符串中有一个\n
,则在打印的行之后会有一个空行。我接受这一行,因为它比使用正则表达式更直观;谢谢@GPhilo,这很有帮助
tokens = [parse_line(l) for l in lines]