针对给定条件和符号筛选文本文件

2024-06-02 04:34:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个多文本文件,在循环中读取多个文件时,它看起来像:

@UTF8
@PID:   11312/c-00036109-1
@Begin
@Languages: eng
@Participants:  CHI Target_Child, EXA Investigator
@ID:    eng|ENNI|CHI|4;11.16|male|SLI||Target_Child|||
@ID:    eng|ENNI|EXA|||||Investigator|||
@Comment:   Birth of CHI is 9-MAY-1995
@Date:  25-APR-2000
@Tape Location: Disk L10 Track 3
@Bg:    A1
*CHI:   I saw a giraffe and a elephant .
%mor:   pro:sub|I v|see&PAST det:art|a n|giraffe coord|and det:art|a
    n|elephant .
%gra:   1|2|SUBJ 2|0|ROOT 3|4|DET 4|2|OBJ 5|4|CONJ 6|7|DET 7|5|COORD 8|2|PUNCT
*CHI:   <that> [/] (.) that (i)s it . [+ bch]
%mor:   pro:dem|that cop|be&3S pro:per|it .
%gra:   1|2|SUBJ 2|0|ROOT 3|2|PRED 4|2|PUNCT
*CHI:   I saw an elephant go swimming .
%mor:   pro:sub|I v|see&PAST det:art|a n|elephant v|go part|swim-PRESP .
%gra:   1|2|SUBJ 2|0|ROOT 3|4|DET 4|5|SUBJ 5|2|COMP 6|5|OBJ 7|2|PUNCT
*CHI:   <I saw eleph> [//] I saw the <g> [/] giraffe and the elephant <s>
    [//] drop ball in the pool .
%mor:   pro:sub|I v|see&PAST det:art|the n|giraffe coord|and det:art|the
    n|elephant n|drop n|ball prep|in det:art|the n|pool .
  • 假设我有像SLI-1.txt、SLI2.txt这样的文件。。。SLI-10.txt。第一个任务是将所有文件读入一个文件,并对其执行以下操作

  • 从这些数据中,我必须只提取前缀为*CHI:或以^{开头的语句。(请注意,有些语句会延伸到下一行,您应该确保将其考虑在内。) 下面是应该从提取的每个*CHI:语句中过滤掉的符号列表

  • 删除那些前缀为[或后缀为]的单词,但保留这三个符号:[//][/][*]

  • 保留那些前缀为<或后缀为>的单词,但应删除这两个符号

  • 删除前缀为&+的单词

  • 保留那些前缀为(或后缀为)的单词,但应删除这两个符号

可以使用正则表达式


Tags: and文件the符号单词engprodet
1条回答
网友
1楼 · 发布于 2024-06-02 04:34:15

要执行筛选,您应该使用Regular Expression Language,如Hint中所述。您可以在Python中使用re模块来实现这一点。当然,您需要了解什么是正则表达式以及如何使用它

例如,您可以使用表达式^(?P<start>\*CHI:)(?P<target>.*)(?P<end>(?P<end_type_1> \.$)|(?P<end_type_2>$\n%mor))(标志为gmsU)来extract only statements which are ...,其中组target包含您要从文件中提取的内容。你可以在网上试试

相关问题 更多 >