【发布时间】:2018-11-20 12:32:27
【问题描述】:
我正在尝试编写一个脚本,允许我从输入的 excel 文件中读取数据(保存为 .csv 格式,因为有人告诉我这样做),并将这些数据的选定部分写入 word 文档.
这是一个脚本,用于为参与者的膳食选择创建个性化的送货单(这些选择会累积添加到输入电子表格中)。
到目前为止,我已经创建了一个虚拟输入电子表格,并保存了一个空白的虚拟输出 word 文件(分别为 dummy.csv 和 dummy.txt)。
到目前为止,我编写的代码将电子表格读入终端,并通过一些格式对其进行整理。
import csv
f = open("dummy.csv")
csv_f = csv.reader(f)
for row in csv_f:
print('{:<15} {:<15} {:<20} {:<25}'.format(*row))
输出如下所示:(为方便起见,虚拟餐选择保持不变)
Participant ID Breakfasts Lunches/dinners Snacks
1111 Full english Risotto Granola
1111 Full english Risotto Granola
1111 Full english Risotto Granola
1111 Full english Risotto Granola
1111 Full english Risotto Granola
1111 Full english Risotto Granola
1111 Full english Risotto Granola
1111 Risotto Granola
1111 Risotto Granola
1111 Risotto Granola
1111 Risotto Granola
1111 Risotto Granola
1111 Risotto Granola
1111 Risotto Granola
2222 Avocado toast Bean chilli Apple
2222 Avocado toast Bean chilli Apple
2222 Avocado toast Bean chilli Apple
2222 Avocado toast Bean chilli Apple
2222 Avocado toast Bean chilli Apple
2222 Avocado toast Bean chilli Apple
2222 Avocado toast Bean chilli Apple
2222 Bean chilli Apple
2222 Bean chilli Apple
2222 Bean chilli Apple
2222 Bean chilli Apple
2222 Bean chilli Apple
2222 Bean chilli Apple
2222 Bean chilli Apple
我的下一个挑战是以某种方式将这些数据写入参与者 1111 的 word 文件,参与者 2222 的另一个文件,依此类推。我不希望脚本必须将这些行中的确切数据写入 word 文件,而是如果输入文件中的食物选择不同,这些行上可能存在的任何数据。
最好在输出交货单上将餐点分为早餐、午餐/晚餐和小吃。
我可以稍后整理字体等,我只希望现在可以选择餐点。 我还想让它说“7 x Full English”,而不是“Full English、Full English、Full English 等”。
感谢您的阅读,任何帮助将不胜感激!
基兰
【问题讨论】:
-
如果您想读入 csv 文件,但又如您所说的那样进行计数等计算,我建议您使用
pandas。这样,将子组单独写入不同的文件也没有问题。但老实说,直到现在我还没有真正明白你到底想做什么...... -
感谢您的回复 - 我真的对此非常陌生,所以请原谅我不清楚。我正在尝试创建一个 python 脚本,该脚本在执行时会打开一个主电子表格(已在其中输入了该周所有参与者的膳食选择),选择参与者 1111 的所有选择并输出一个送货单,列出所有当周送餐给参与者 1111。输出将包含参与者 ID (1111)、早餐:7 x 全英语、午餐/晚餐:14 x 意大利调味饭,等等。然后,对所有参与者重复相同的任务。
-
没有理由原谅 - 我认为你真的应该仔细看看熊猫。它已经是一个非常强大的数据分析工具,并且正在积极开发中。如果我查看你的个人资料,我想你会很乐意在未来一次又一次地使用它......
-
非常感谢,我会调查的!
标签: python excel python-3.x csv file-handling