python-3.x - Python - 循环文件并按文件存储事件
问题描述
我有一个需要调整的 python 脚本,我必须打开 4 个不同的文件并生成一个最终文件,其中包含每个文件的“单词”出现次数,例如:
格式:文件 - 文件 1 中的出现,文件 2 中的出现,文件 3 中的出现,文件 4 中的出现
苹果, 3,4,1,5 菠萝, 7,4,1,3
我想在不使用外部库的情况下做到这一点。最初,我的想法是将值存储在列表中,然后将它们添加到文件中,但我看不到它的执行情况。目前,单个文件的代码我有这样的:
def data():
list_words = []
with open("story.txt") as words:
for line in words:
word = line.split()
for i in range(len(word) + 1):
if i not in list_words:
list_words.append(i)
else:
list_words[i] += 1
我在其他帖子中没有找到太多相关帮助,欢迎任何想法,谢谢!
编辑:我必须打开并验证单词的文件示例:
http://textfiles.com/stories/3lpigs.txt http://textfiles.com/stories/adler.txt
它们是带有故事的txt文件
解决方案
这是最简单的单词计数器,它使用字典键是唯一的这一事实。
import tkinter
from tkinter import filedialog
master = tkinter.Tk()
master.withdraw()
def data( pathfilename ):
word = dict()
with open( pathfilename, mode='rt' ) as words:
text = words.read()
for line in text.split('\n'):
for k in line.split():
if k in [
'', chr(10), chr(13), chr(9), '.', ',', '!', '?', ':', ';',
'@', '#', '$', '%', '^', '&', '*', '(', ')', '-', '_', '\\',
'|', '<', '>', '/', '"', "'", chr(96), '~', '[', ']', '{', '}' ]:
pass
elif k in word:
word[ k ] += 1
else:
word[ k ] = 1
return word
fdir = filedialog.askopenfilename( title = 'Pick a txt file' )
if fdir:
result = data( fdir )
print( len( list( result.keys() ) ) )
print()
for k,v in result.items():
print( f'{k} = {v}' )
master.destroy()
它返回一个单词字典和计数。
推荐阅读
- azure - POST JSON 以将事件记录到 Application Insights
- postgresql - 如何从postgresql中表的更改列的结果中查询
- c++ - 如何避免此 C++ 代码中的算术异常?
- php - laravel中的redis问题
- php - PHP 变量始终为空
- javascript - React AXIOS post - 简单测试不起作用(快递)
- android - Android 应用内计费错误代码 - 错误 OR-IEH-02
- xamarin.android - “Resource.Designer.cs”在整个解决方案中更改后保留旧命名空间
- aframe - 如何以编程方式在 A-FRAME 场景中旋转相机?
- python - 根据两个特征对数据框进行分箱