Python:无法在多个文件中写入结果

2024-09-30 18:16:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个主草稿文本文件,其中有像PA,ST等标记。我的意图是为每个标记创建一个文件,并将包含该标记的行写入相应的文件。下面是我当前的python代码

#!/usr/bin/python3
import sys
flnmc=sys.argv[1]

tags_dict={'PA':'Positive_Assertions','ST':'Self_improvement_Thought'\
,'TO':'TodO_task','WK':'WorK_todo','FN':'FuNny','CURRENT':'CURRENT'}

print(flnmc)

def grep_tags(tag):
  with open(flnmc,'r') as fc:
    for line in fc:
      if tag in line:
        print(line,end='')

grep_tags('WK')

fc=open(flnmc,'r')
for tag, s in tags_dict.items():
  f=open("%s.txt" %s,'w')
  for line in fc:
    if tag in line:
      f.write(line)
  f.close()

问题:grep\u tags函数正在精细打印包含主文本文件标记的行。同时创建所有必需的文件。但是,当涉及到将grepped结果写入相应的文件时,我发现只有第一个标记的结果是按要求写入的,而其他标记文件是空的


Tags: 文件in标记fortagsyslinetags
2条回答

放上: fc=打开(flnmc,'r') 内部声明: 对于tag,在tags\u dict.items()中的s: .... 环 i、 每次都必须调用open语句,否则它就会“过时”

...
grep_tags('WK')

#fc=open(flnmc,'r')
for tag, s in tags_dict.items():
    fc=open(flnmc,'r')
    f=open("%s.txt" %s,'w')
    for line in fc:
        if tag in line:
            f.write(line)
f.close()

这将把标记写入相应的文本文件。您错过的是在后面的部分打开flnmc文件

fc=open(flnmc,'r')
for tag, s in tags_dict.items():
    with open(flnmc,'r') as fc:
        for line in fc:
            if tag in line:
                f=open("%s.txt" %s,'w')
                f.write(line)

相关问题 更多 >