从现有文件中读取一行的可选部分
Reading selectable portions of a line from an existing file
我正在为我的计算机科学 Python 创建一门语言 class,我需要知道如何读取文件中某行的某些部分。例如,如果第一部分有一个 "for",则读取“()”中的内容,然后检查“{”,然后转到下一行。
我尝试使用 "if x in line:",但这并不能确保它的顺序正确。我也不知道如何只获取该行的一小部分,例如前三个字母,或前三个字母之后的下三个字母。我试图做到这一点,而不必将字符作为单个变量或列表。我更喜欢将一小部分保存为字符串,以便在读取该行后将这部分实现到另一个脚本中。
正则表达式可以在拆分前为您检查一行的语法。例如,使用 javascript/ C 风格的 for 循环:
for(x=1;x<=10;x++){ //Note, some coders drop this { to the next line.
do_something();
}
Python RE 类似于:
import re
if re.match("for([\w|\S]+)[{|\S]", line.strip()):
from_first_bracket = line.split("(")[1]
for_loop_conditions = from_first_bracket.split(";")
# last item in for_loop_conditions list has extra punctuation:
for_loop_conditions[2] = for_loop_conditions[2].split(")")[0]
现在变量for_loop_conditions中存储了:['x=1','x<=10','x++']
该行被条纹化以摆脱编码器可能放在其 for 循环前面以表示嵌套的任何后续 whitespace 。我没有考虑 'for' 和 '(' 之间的白色 space 或从最终列表中剥离白色 space ,但我已经考虑了在下一行写 { 和递增 x = x + 2.
我正在为我的计算机科学 Python 创建一门语言 class,我需要知道如何读取文件中某行的某些部分。例如,如果第一部分有一个 "for",则读取“()”中的内容,然后检查“{”,然后转到下一行。 我尝试使用 "if x in line:",但这并不能确保它的顺序正确。我也不知道如何只获取该行的一小部分,例如前三个字母,或前三个字母之后的下三个字母。我试图做到这一点,而不必将字符作为单个变量或列表。我更喜欢将一小部分保存为字符串,以便在读取该行后将这部分实现到另一个脚本中。
正则表达式可以在拆分前为您检查一行的语法。例如,使用 javascript/ C 风格的 for 循环:
for(x=1;x<=10;x++){ //Note, some coders drop this { to the next line.
do_something();
}
Python RE 类似于:
import re
if re.match("for([\w|\S]+)[{|\S]", line.strip()):
from_first_bracket = line.split("(")[1]
for_loop_conditions = from_first_bracket.split(";")
# last item in for_loop_conditions list has extra punctuation:
for_loop_conditions[2] = for_loop_conditions[2].split(")")[0]
现在变量for_loop_conditions中存储了:['x=1','x<=10','x++'] 该行被条纹化以摆脱编码器可能放在其 for 循环前面以表示嵌套的任何后续 whitespace 。我没有考虑 'for' 和 '(' 之间的白色 space 或从最终列表中剥离白色 space ,但我已经考虑了在下一行写 { 和递增 x = x + 2.