希望从Python中的代码创建word文档

希望从Python中的代码创建word文档,python,python-3.x,list,docx,receipt,Python,Python 3.x,List,Docx,Receipt,我有以下代码: import random from docx import Document from docx.shared import Inches title = "seans store" """ Declare the two dictionaries with name stock and prices """ stock = { "banana": 60, &q

我有以下代码:

import random
from docx import Document
from docx.shared import Inches 
title = "seans store"
"""
Declare the two dictionaries with name stock and prices
"""
stock = {
    "banana": 60,
    "apple": 150,
    "orange": 120,
    "pear": 150,
    "tomatoes": 120,
    "yoghurt": 100
}

prices = {
    "yoghurt": 1,
    "banana": 2,
    "apple": 1,
    "orange": .5,
    "pear": 1.5,
    "tomatoes": 1.1
}
"""
Declare the items within the customers shopping cart
"""
shopping_cart = [("pear",1), ("orange", 1), ("apple",2), ("tomatoes",2), ("yoghurt",0)]
for i in shopping_cart:
    if stock[i[0]] - i[1] < 0:
        shopping_cart.pop(shopping_cart.index(i))
    else:
        stock[i[0]] -= i[1]
print(f"Thank you for shopping @ {title.title()}")
for x in range(1):
    Order_number = random.randint(100,999)
total_items = sum([i[1] for i in shopping_cart])
print(f"Your Order number is: {Order_number}")
print(f"Total items bought: {total_items}")
print("----------------")
print("     Bill")
print("----------------")
for i in shopping_cart:
    print(f"{i[0]} x{i[1]} @  £{prices[i[0]]}")
total = (sum([prices[i[0]] * i[1]  for i in shopping_cart]))
total_after_tax = total + (total*0.2)
tax_total = total_after_tax - total
print("----------------")
print("VAT @: £{:.2f}".format(tax_total))
print("----------------")
print("Total is £{:.2f}".format(total_after_tax))
"""Reciept creation"""
document = Document()
document.add_heading(f'Reciept for {title.title()}', 0)
p = document.add_paragraph('Items Ordered: ')

document.save("Reciept.docx")
随机导入
从docx导入文档
从docx.shared导入英寸
title=“肖恩斯商店”
"""
声明这两本词典的名称为股票和价格
"""
股票={
“香蕉”:60,
“苹果”:150,
“橙色”:120,
“梨”:150,
“西红柿”:120,
“酸奶”:100
}
价格={
“酸奶”:1,
“香蕉”:2,
“苹果”:1,
“橙色”:,
“梨”:1.5,
“西红柿”:1.1
}
"""
在客户购物车中声明项目
"""
购物车=[(“梨”,1),(“橙”,1),(“苹果”,2),(“西红柿”,2),(“酸奶”,0)]
对于购物车中的i:
如果股票[i[0]]-i[1]<0:
购物车pop(购物车索引(i))
其他:
股票[i[0]]-=i[1]
打印(f“感谢您的购物{title.title()}”)
对于范围(1)内的x:
订单号=random.randint(100999)
合计商品=总和([i[1]用于购物车中的i])
打印(f“您的订单号为:{订单号}”)
打印(f“购买的物品总数:{Total_items}”)
打印(------------------------------)
打印(“账单”)
打印(------------------------------)
对于购物车中的i:
打印(f“{i[0]}x{i[1]}{prices[i[0]]}”)
总计=(购物车中i的总和([价格[i[0]]*i[1]))
税后合计=合计+(合计*0.2)
税总额=税后总额-总额
打印(------------------------------)
打印(“增值税:{.2f}”。格式(税收总额))
打印(------------------------------)
打印(“总计为:{.2f}”。格式(税后总计))
“接收创建”
文件=文件()
document.add_标题(f'receipt for{title.title()}',0)
p=文件。添加段落('已订购的项目:')
document.save(“receipt.docx”)

我想从中创建一个文档,将客户订购的商品及其价格列为收据。我希望创建这个,以便将来能够自动化收据创建过程。我还想知道,在代码完成后,是否可以让代码自动打印或打开word文档软件。

如果我理解正确,您打算将打印语句输出到word文档。唯一的方法是通过
docx
库添加
.add_paragration()
方法

这是一个很好的例子

保存文件后,只需使用
os
模块以标准方式打开文件即可。这将默认为您设置为打开
.docx
类型文件的任何应用程序

import os
os.startfile('C:\\Path\\To\\demo.docx')

是的,但是你可以从代码中看到,我想发送商品名称,价格,购买word文档的金额很难,因为我不能将变量名应用于for循环,然后调用它来将其应用于word文档。你能扩展一下这里的意思吗?这很难,因为我不能将变量名应用于for循环,然后调用它来将其应用于word文档?也许可以将其添加到问题:如何更好地阐明问题
import os
os.startfile('C:\\Path\\To\\demo.docx')