【发布时间】:2021-06-25 23:28:08
【问题描述】:
Python 新手,我正在尝试计算文本文件目录中的单词并将输出写入单独的文本文件。但是,我想指定条件。因此,如果字数 > 0,则想将计数和文件路径写入一个文件,如果计数 == 0。我想将计数和文件路径写入单独的文件。以下是我到目前为止的代码。我想我已经接近了,但我对如何处理条件和分离文件感到困惑。谢谢。
import sys
import os
from collections import Counter
import glob
stdoutOrigin=sys.stdout
sys.stdout = open("log.txt", "w")
def count_words_in_dir(dirpath, words, action=None):
for filepath in glob.iglob(os.path.join("path", '*.txt')):
with open(filepath) as f:
data = f.read()
for key,val in words.items():
#print("key is " + key + "\n")
ct = data.count(key)
words[key] = ct
if action:
action(filepath, words)
def print_summary(filepath, words):
for key,val in sorted(words.items()):
print(filepath)
if val > 0:
print('{0}:\t{1}'.format(
key,
val))
filepath = sys.argv[1]
keys = ["x", "y"]
words = dict.fromkeys(keys,0)
count_words_in_dir(filepath, words, action=print_summary)
sys.stdout.close()
sys.stdout=stdoutOrigin
【问题讨论】:
-
stdoutOrigin=sys.stdout和sys.stdout = open("log.txt", "w")你到底为什么要monkey_patch 这个而不是使用文件记录器???还是直接打开输出文件直接写入!?