[英]How to run a script on all files in a directory?
我有一个脚本可以进行一些基本的文本清理和标记化,然后对词频进行计数和排序。 我能够让脚本处理单个文件,但我需要帮助在整个目录上实现它。 简而言之,我想使用此代码来计算整个目录中的全局词频(而不是为每个文件返回单独的值)。
这是我的代码:
import re
import string
from collections import Counter
file = open("german/test/polarity/positive/0.txt", mode="r", encoding="utf-8")
read_file = file.read()
#remove punctuation
translation = str.maketrans("","", string.punctuation)
stripped_file = read_file.translate(translation)
##lowercase
file_clean = stripped_file.lower()
##tokenize
file_tokens = file_clean.split()
##word count and sort
def word_count(file_tokens):
for word in file_tokens:
count = Counter(file_tokens)
return count
print(word_count(file_tokens))
您可能正在寻找os.walk() 。
将您的代码移动到一个函数中,然后使用
for subdir, dirs, files in os.walk(rootdir):
for file in files:
在每个文件上调用函数
对于 Python => 3.6 使用os
directory = os.fsencode(directory_in_str)
for file in os.listdir(directory):
filename = os.fsdecode(file)
if filename.endswith(".txt"):
# print(os.path.join(directory, filename))
continue
else:
continue
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.