繁体   English   中英

从多个文件读取数据,但想将该数据写入新的文本文件,但文件显示为空白

[英]read data from multiple files but would like to write that data into a new text file but file shows up blank

到目前为止,代码从多个文本文件中读取,我让它显示在终端上,但我想将信息写入文本文件,但文本文件显示为空白,不知道为什么是 python 新手,所以还没有想通输出所有命令。

directory = 'C:\Assignments\\CPLfiles\*'
test = False
start_text = '^GMWE'

for filename in glob.glob(directory):
    with open(filename) as f:
        with open('file.txt', 'w') as f1:
            for line in f:
                #for x in line:
                    if test is False:
                        if re.search(start_text, line.strip()) is not None:
                            x = line.strip()
                            f1.write(x+ '\n')
                            print(x)
                            break


    test = False

我认为您应该将打开文件的顺序更改为以下内容。 问题是,对于您打开以读取的每个文件,您还需要重新打开文件以进行写入,并搅动其内容。

此外,由于中断,由于 write 语句之后的中断,您将最多为每个文件写入一行。 如果您打开的最后一个文件与正则表达式没有任何匹配,则最终文件中将不存在任何内容。

希望这是有道理的

directory = 'C:\Assignments\\CPLfiles\*'
test = False
start_text = '^GMWE'

with open('file.txt', 'w') as f1:
    for filename in glob.glob(directory):
        with open(filename) as f:
            for line in f:
                #for x in line:
                    if test is False:
                        if re.search(start_text, line.strip()) is not None:
                            x = line.strip()
                            f1.write(x+ '\n')
                            print(x)
                            break


    test = False

我认为这里的主要问题是您为通配符中的每个文件重新打开 file.txt。 每次以写入模式打开它都会删除文件。 如果最后一个文件中没有行匹配,您最终会得到一个空文件。 所以,你的循环应该是你中with打开此文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM