从现有文件

时间:2016-04-01 04:48:42

标签: python python-3.3

我正在为我的计算机科学课制作Python语言,我需要知道如何阅读文件中某行的某些部分。例如,如果有" for"在第一部分中,然后阅读"()"中的内容,然后检查" {",然后转到下一行。 我尝试使用"如果x在行:",但这并不能确保它的顺序正确。我也无法弄清楚如何只获得该行的一小部分,例如前三个字母,或前三个字母后面的后三个字母。我试图做到这一点,而不必将字符作为单个变量或列表。我更喜欢将小部分保存为字符串,以便在读取该行之后将该部分实现到另一个脚本中。

1 个答案:

答案 0 :(得分:1)

正则表达式可以在拆分之前检查一行的语法。例如,使用循环的javascript / C样式:

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&lt; = 10','x ++'] 该行被条带化以消除编码器可能在其for循环前面放置的任何前进空白以表示嵌套。我没有考虑'for'和'('或最终列表中的条带化空格之间的空白区域,但是我已经考虑写{在下一行并按x = x + 2递增。