【发布时间】:2022-01-25 08:55:58
【问题描述】:
我是 Python 新手,我正在尝试编写一个程序,该程序将读取文本文件列表并返回一个字典,其中包含 filePaths 以及每个文件中有多少 m。
通过搜索互联网,我想出了以下代码:
def readFilesFor_m(filePaths):
# dictionary for saving no of m's in each file
dictionary = {}
for filePath in filePaths:
fileObj = open(filePath, "r");
fileContent = fileObj.read()
dictionary[fileObj] = fileContent.count('m');
fileObj.close()
return dictionary
fileLists = [
"H:\\SomeTextFiles\\16.txt",
"H:\\SomeTextFiles\\Chat.txt",
"H:\\SomeTextFiles\\zero-m.txt"
]
print(readFilesFor_m(fileLists))
程序运行,但我看到的输出并不像我想象的那么简单(想要的):
{<_io.TextIOWrapper name='H:\\SomeTextFiles\\16.txt' mode='r' encoding='cp1252'>: 581,
<_io.TextIOWrapper name='H:\\SomeTextFiles\\Chat.txt' mode='r' encoding='cp1252'>: 20,
<_io.TextIOWrapper name='H:\\SomeTextFiles\\zero-m.txt' mode='r' encoding='cp1252'>: 0}
我不想字典里有那些多余的东西,我只想看看,
{'H:\\SomeTextFiles\\16.txt': 581, 'H:\\SomeTextFiles\\Chat.txt': 20, 'H:\\SomeTextFiles\\zero-m.txt': 0}
我需要做什么才能实现这一目标?
【问题讨论】:
-
只需将
dictionary[fileObj]替换为dictionary[filePath]。 -
我已经找到了,+1
标签: python-3.x file dictionary