python - 按垂直顺序写入文本文件

标签 python python-3.x

我有这个程序计算模块来根据价格计算每个项目的小计和总计:

#calculate
def calculate1():
    a4canon = (int(input('A4 paper (canon):')))*8.9
    a4rainbow = (int(input('A4 paper (rainbow):')))*7.5
    lruler = (int(input('Long ruler:')))*0.85
    sruler = (int(input('Short ruler:')))*0.55
    blue = (int(input('Blue pen:')))*0.65
    red = (int(input('Red pen:')))*0.65
    black = (int(input('Black pen:')))*0.65
    pencil = (int(input('2B Pencil:')))*2.4

    total = a4canon + a4rainbow + lruler + sruler + blue + red + black + pencil

    a = str(a4canon)
    b = str(a4rainbow)
    c = str(lruler)
    d = str(sruler)
    e = str(blue)
    f = str(red)
    g = str(black)
    h = str(pencil)

    i = str(total)

    return [('A4 paper(canon):',a),('A4 paper(rainbow):',b),('Long Ruler:',c),
            ('Short Ruler:',d),('Blue Pen:',e),('Red Pen',f),('Black Pen:',g),
            ('2B Pencil:',h),('Total:',i)]

和显示模块:提示出客户的姓名并继续将购买记录到文本文件中:

#display
import calculate
def display1(x):
    file = open('sample.txt','w')
    file.write(input('Customer name:'))
    lst = []
    lst = x
    for i in lst :
        file.write('\n'.join(list(i)))
    print('Your order is recorded. Thank you and please come again.')

和文件模块:

#file
import display
def file1(x):
    while True:
        user = input('Do you want to keep a record (y/n):')
        if (user == 'y') or (user == 'Y'):
            display.display1(x)
            break

        elif (user == 'n') or (user == 'N'):
            print('Thank You. Please come again')
            break

        else:
            print('Wrong input. Please try again.')

主模块:协调和管理所有模块执行任务:

import menu
import calculate
import file
import display

menu.menu1()
value = calculate.calculate1()
file.file1(value)

文件内的数据似乎没有按顺序保存:

bob8.9
A4 paper(canon):7.5
A4 paper(rainbow):Long Ruler:
0.85Short Ruler:
0.55Blue Pen:
0.65Red Pen
0.65Black Pen:
0.652B Pencil:
2.4Total:
22.149999999999995

我该怎么做才能让它保存的数据像这样:

customer Name:bob
A4 paper(canon):1 ~ 8.9
A4 paper(rainbow):1 ~ 7.5
Long Ruler:1 ~ 0.85
Short Ruler:1 ~ 0.55
Blue Pen:1 ~ 0.65
Red Pen:1 ~ 0.65
Black Pen:1 ~ 0.65
2B Pencil:1 ~ 2.4
Total:22.149999999999995

最佳答案

1)我认为没有任何理由导入菜单,我没有看到它做任何事情。

2)我认为你不需要在main.py中导入显示

尝试改变

file.write('\n'.join(list(i)))

file.write('\n{} {}'.format(i[0], i[1]))

这是我的输出

Tom

A4 paper(canon): 8.9

A4 paper(rainbow): 7.5

Long Ruler: 0.85

Short Ruler: 0.55

Blue Pen: 0.65

Red Pen 0.65

Black Pen: 0.65

2B Pencil: 2.4

Total: 22.149999999999995

关于python - 按垂直顺序写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47182458/

相关文章:

python - 如何使用附加信息重新引发异常?

Python: 'function' 对象没有属性 x

python - Bokeh 将图例添加到步骤图

python - Pandas :对同一列中的情侣进行分组

python - 我如何在 python 中编写一个简单的 IRC 机器人?

python-3.x - 在不考虑订单时检查 Pandas 行是否唯一

Python 将函数传递给对象

python通过rabbitmq传递二进制文件

python - 如何在 unstack 过程中使用自定义列名称并更改结构?

python - 在Python中处理列表和消息