解析文本文件并查找某个字符串

时间:2016-06-07 12:49:04

标签: python parsing text

我有一个包含EPA信息的文本文件,它们由州编码。我想将每个状态分解为自己的文本文件。以下是我正在使用的代码:

from __future__  import print_function
import os, sys
import numpy as np


print(os.getcwd())

lines = [] #lines from file
with open('UCMR3_All.txt') as well_list:
    for line in well_list:
        if line == "AL":
            #what goes here?

well_list_output = open(os.path.join('..','well_list_output.txt'),'w')

for line in lines:
    well_list_output.write(line)

well_list_output.close()

基本上,我想采取包含" AL"并将其输出到自己的文件。我试图使用lines.append(line),但这似乎没有帮助。我当然会接受有用的推动或指导来代替答案!

1 个答案:

答案 0 :(得分:0)

with open('UCMR3_All.txt') as well_list:
    for line in well_list.read().split('\n':
        if "AL" in line:
            lines.append(line)

稍后您可以将lines var写入文件。

基本上,well_list是一个文件对象。它不是一个字符串,当然也不是一个列表。如果要将文件内容读入字符串,只需使用read()方法。

阅读完文件后,您可以使用split('\n')将其拆分为行。

现在剩下的就是遍历该列表并将好行保存到列表中。这可以在两行中完成:

with open('UCRM3_All.txt', 'r') as fileObj:
    lines[:] = [line for line in fileObj.read().split('\n') if "AL" in line]

这称为列表理解。您可以在线阅读更多内容。
现在,您可以将行列表打印到文件(不同的文件):

for i in xrange(len(lines)):
    with open("f" + str(i) = ".txt", "w") as fileObj:
        fileObj.write(lines[i])