![](/img/trans.png)
[英]Python: Iterating through a directory and writing the results separate txt files
[英]Writing python dictionary items into separate txt files
我有看起来像这样的字典(每次都生成):
{'Module1': [], 'Module2':['C:\\folder1\\folder2\\Module2\\Module2.1.c', 'C:\\folder1\\folder2\\Module2\\Module2.2.c', 'C:\\folder1\\folder2\\Module2\\Module2.3.c', 'Module3': ['C:\\folder1\\folder2\\Module3\\Module3.1.c', 'C:\\folder1\\folder2\\Module3\\Module3.2.c'], 'Module4': ['C:\\folder1\\folder2\\Module4\\Module4.1.c', 'C:\\folder1\\folder2\\Module4\\Module4.2.c', etc
所以它包含模块的名称和它的路径。c 里面的文件。
为每个仅包含这些路径的单独 txt 文件制作单独的 txt 文件的最佳方法是什么?
因此,举个例子,我应该有: Module1.txt 将为空,然后 Module2.txt 将包含:
'C:\folder1\folder2\Module2\Module2.1.c'
'C:\folder1\folder2\Module2\Module2.2.c'
'C:\folder1\folder2\Module2\Module2.3.c'
#!/usr/bin/python
# -*- coding: utf-8 -*-
data = {
'Module1': [],
'Module2': ['C:\\folder1\\folder2\\Module2\\Module2.1.c',
'C:\\folder1\\folder2\\Module2\\Module2.2.c',
'C:\\folder1\\folder2\\Module2\\Module2.3.c'],
'Module3': ['C:\\folder1\\folder2\\Module3\\Module3.1.c',
'C:\\folder1\\folder2\\Module3\\Module3.2.c'],
'Module4': ['C:\\folder1\\folder2\\Module4\\Module4.1.c',
'C:\\folder1\\folder2\\Module4\\Module4.2.c']
}
def handleModule(filename, data):
data = ["'%s'" % item for item in data]
with open(filename, 'w') as f:
f.write(' '.join(data))
for filename, module in data.items():
handleModule(filename, module)
在主循环中,我们将遍历字典的所有键和值。 对于每个键/值对(文件名/模块),都会调用 handleModule。
在 handleModule function: ["'%s'" % item for item in data]
的开头有一个列表理解。 它为每个列表项添加引号。
我们打开 file: with open(filename, 'w') as f:
。 它与f = open(filename, 'w')
做同样的事情,但保证文件在块结束后关闭。
' '.join(data)
将列表中的所有项目连接成一个字符串,使用空格字符作为分隔符。 我们将这个字符串写入文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.