python - 为目录中的所有文件运行 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
等,但我无法让它发挥作用。非常感谢每一个帮助。)
解决方案
您提到的所有功能都应该适用于迭代文件夹内的所有文件。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])
推荐阅读
- r - 如何让 R 在不删除整行的情况下忽略 N/A 值?
- angularjs - 名称为“MyPageController”的控制器未注册错误(Angular1.5.3)
- android - Flutter firebase 云功能,playload 问题
- php - 在 php - mysql 中嵌套“group by”和“for (each)”语句
- javascript - 如何在javascript中将给定的日期和时间转换为纪元时间?
- reactjs - 会话存储侦听器仅适用于手动更改
- lua - 由于依赖关系,无法将 Lua 从 5.1.4 更新到 5.3
- sails.js - `res.jsonx()` 在 Sails v1.0 中已弃用,并将在未来的版本中删除
- php - 如何缓存imagick生成的图片?
- android - Flutter initState() 返回 _debugLifecycleState 错误