我所拥有的是具有各种行的文本文件,我想知道如何指定使用re.sub的行。例如,如果我想要第3行的一部分,我如何在第3行的内容中指向re.sub。
提供更多背景资料。该文件在每一行都有数据,如第0行=标题行,第1行=总读数,第2行=%读数。我将这些行中的数字分配给变量以供以后使用。
从文本文件中的特定行提取数据。使用以下代码......
for i, line in enumerate(textfile):
print i, line
给我输出
0 line printed here
1 line printed here
计划使用re.sub()
获取我想要的部分内容。但是我如何参考具体的行/文字。想的就是......
target = ""
for i, line in enumerate(textfile):
if i == 1:
target = re.sub(r"line (printed) here", r"\1", line)
但那不太正确
答案 0 :(得分:1)
如果我找对你,你只想从选择性行中提取数据,比如(1, 4, 5, 9)
。
在这种情况下,请执行:
for i, line in enumerate(textfile):
if i in (1, 4, 5, 9):
target = re.sub(r"line (printed) here", r"\1", line)
请注意,枚举将从索引0开始,因此文件的第一行将对应于索引0,索引1的文件的第2行,依此类推。
答案 1 :(得分:0)
假设您的问题只是如何在特定行上使用re.sub()
,您可以使用类似(对于您想要的行)的内容。也许您的错误是您忘记打开文件。
myfile = open("textfile")
for i, line in enumerate(myfile):
if i == 1:
# this is your second line
target = re.sub(r"line (printed) here", r"\1", line)
elif i == 6:
# this is your seventh line
elif i > 100:
break
myfile.close()