首页 > 解决方案 > 为目录中的所有文件运行 Python 脚本

问题描述

我的编程技能非常有限(x10)。但我有这个小python脚本:

#load data
files = '/Users/xxx/Desktop/Test_SP/a.txt'
file = open(files, 'rt')
text = file.read()
file.close()
# split into words
from nltk.tokenize import word_tokenize
tokens = word_tokenize(text)
# stemming of words
from nltk.stem.porter import PorterStemmer
porter = PorterStemmer()
stemmed = [porter.stem(word) for word in tokens]
print(stemmed[:20])

有人可以告诉我如何为该目录中的所有文件运行此脚本(/Users/xxx/Desktop/Test_SP),而不仅仅是一次运行 1 个文件(a.txt

(我已经知道 globos.walk等,但我无法让它发挥作用。非常感谢每一个帮助。)

标签: pythonloopsdirectorynltkstemming

解决方案


您提到的所有功能都应该适用于迭代文件夹内的所有文件。glob顺便说一句,尝试使用这些方法( ,os.walk等)运行时,您的错误是什么。这是我的解决方案listdir

import os
files_path = '/Users/xxx/Desktop/Test_SP/'
for filename in os.listdir(files_path):
    # only care the txt files
    if filename.endswith(".txt"):
        #load data
        file = open("{}/{}".format(files_path,filename))
        text = file.read()
        file.close()
        # split into words
        from nltk.tokenize import word_tokenize
        tokens = word_tokenize(text)
        # stemming of words
        from nltk.stem.porter import PorterStemmer
        porter = PorterStemmer()
        stemmed = [porter.stem(word) for word in tokens]
        # write on the same file with input
        with open("{}/{}".format(files_path,filename), 'w') as fout:
            fout.write(stemmed[:20])

推荐阅读