将python中的输出打印到txt文件

将python中的输出打印到txt文件,python,Python,写了一个简单的程序,想把输出打印成一个文本文件。我正在脚本的最顶端尝试以下内容: python SagicorPremiumCalculator2.py > textfile.txt 但这在idle中给了我一个语法错误。我的语法怎么不正确 python SagicorPremiumCalculator2.py > textfile.txt python SagicorPremiumCalculator2.py > textfile.txt import openpyxl,

写了一个简单的程序,想把输出打印成一个文本文件。我正在脚本的最顶端尝试以下内容:

python SagicorPremiumCalculator2.py > textfile.txt
但这在idle中给了我一个语法错误。我的语法怎么不正确

python SagicorPremiumCalculator2.py > textfile.txt

python SagicorPremiumCalculator2.py > textfile.txt
import openpyxl, os, sys
wb = openpyxl.load_workbook('example.xlsx')
Millar_sheet = wb.get_sheet_by_name('Millar')
client = []
output = []
print(os.getcwd())


for rowOfCellObjects in Millar_sheet['A2':'AA13']:
        for cellObj in rowOfCellObjects:
                #if cellObj.value != None:
                #print(cellObj.coordinate, cellObj.value)
                client.append(cellObj.value)
        #print(client[2]) #client name
        print(client[0]) #policy number
        print(client[9]) #license plate
        #output.append(client[0]) #1
        #output.append(client[9]) #2
        if client[12] != "Not Applicable":
            float(client[12])
            print('S.I. = ' + '$' + str("%0.2f" % client[12]))
            #output.append("%0.2f" % client[12]) #3
        else:
            print('S.I. ' + client[12])
            print('Basic = ' + '$' + str("%0.2f" % client[13]))
            #output.append("%0.2f" % client[13])#3
        if client[14] != None:
            print('Loading = ' + str(100*client[14]) + '%')
        else:
            print('No Loading')
        val = client[13]
        if client[14] == None:
            val = client[15]     #if there is no loading percentage, val becomes subtotal
        else:
            val += (val*client[14]) # a = a + b, adds 150 to 1000
        print('Subtotal = ' + '$' + str("%0.2f" % val))#good
        if client[16] != None:
            ATD = val*client[16] #discount amount 
            print('ATD = ' + str(100*client[16]) + '%, -$' + str("%0.2f" % ATD))
            val -= (val*client[16])
            print('$' + str("%0.2f" % val))
        if client[17] != None:
            val -= (val*client[17])
            SP = val*client[17] #Discount amount
            print('SP = ' + str(100*client[17]) + '%, -$' + str("%0.2f" % SP))
            print('$' + str("%0.2f" % val))
        if client[18] != None:
                val = (val+client[18])
                PAB = client[18]
                print('PAB = +$' + str(client[18]))
                print('$' + str("%0.2f" % val))
        if client[19] != None:
            NCD = val*client[19]
            val -= (val*client[19])#discount amount
            print('NCD = ' + str(100*client[19]) +'%, -$' + str("%0.2f" % NCD))
            print('$' + "%0.2f" % val)
        if client[20] != None:
            val = (val+client[20])
            print('W/S = +$' + str(client[20]))
            print('$' + "%0.2f" % val)
        if client[21] != None:
            val = (val+client[21])
            print('LOU = $' + str(client[21]))
            print('$' + "%0.2f" % val)
        if val < 750: #Applies minimum premium if val is under 750
            print("Minimum premium applied")
            val = 750

        print('Pre-tax Premium is ' + '$' + str("%0.2f" % val)) #good 
        if client[23] == 0: #Client over 65, not being charged tax
                print('According to Sagicor speadsheet, client over 65')
        else:
                PreTax = val*0.06
                val = (PreTax+val)
                print('Premium Tax = +$' + str("%0.2f" % PreTax)) #good
                print('$' + "%0.2f" % val)
        if client[25] != None:
                print('RS = +$' + str(client[25]))
                val = (val+client[25])
                print('Total = $' + str("%0.2f" % val))
                #if val == client[26]:
                        #print('Sagicor\'s total agrees with calculated total - top')
                #else:
                        #print('Premium does not agree - top')

        else:
                print('Roadside assistance NOT included')
                print('Total = $' + str("%0.2f" % val))
                #if val == client[26]:
                        #print('Sagicor\'s total agrees with calculated total - bottom')
                #else:
                        #print('Premium does not agree - bottom')
        client = []
        output = []
        print('--- END OF ROW ---')
python-SagicorPremiumCalculator2.py>textfile.txt
python SagicorPremiumCalculator2.py>textfile.txt
导入openpyxl、os、sys
wb=openpyxl.load_工作簿('example.xlsx')
Millar\u sheet=wb。通过名称(“Millar”)获取工作表
客户端=[]
输出=[]
打印(os.getcwd())
对于Millar_表['A2':'AA13']中的成排单元对象:
对于CellObjects中的cellObj行:
#如果cellObj.value!=无:
#打印(cellObj.坐标,cellObj.值)
client.append(cellObj.value)
#打印(客户[2])#客户名称
打印(客户[0])#保单编号
打印(客户[9])#车牌
#output.append(客户端[0])#1
#output.append(客户端[9])#2
如果客户端[12]!=“不适用”:
浮动(客户端[12])
打印('S.I.='+'$'+str(“%0.2f”%client[12]))
#output.append(“%0.2f”%client[12])3
其他:
打印('S.I.+客户[12])
打印('Basic='+'$'+str(“%0.2f”%client[13]))
#output.append(“%0.2f”%client[13])#3
如果客户端[14]!=无:
打印('Loading='+str(100*客户端[14])+'%
其他:
打印('不加载')
val=客户机[13]
如果客户端[14]==无:
val=客户机[15]#如果没有加载百分比,val将变为小计
其他:
val+=(val*client[14])#a=a+b,加上150到1000
打印('Subtotal='+'$'+str(“%0.2f”%val))#良好
如果客户端[16]!=无:
ATD=val*客户[16]#折扣金额
打印('ATD='+str(100*客户端[16])+'%,-$'+str(“%0.2f”%ATD))
val-=(val*客户端[16])
打印(“$”+str(“%0.2f”%val))
如果客户端[17]!=无:
val-=(val*客户端[17])
SP=val*客户[17]#折扣金额
打印('SP='+str(100*客户端[17])+'%,-$'+str(“%0.2f”%SP))
打印(“$”+str(“%0.2f”%val))
如果客户端[18]!=无:
val=(val+client[18])
PAB=客户机[18]
打印('PAB=+$'+str(客户端[18]))
打印(“$”+str(“%0.2f”%val))
如果客户端[19]!=无:
NCD=val*客户机[19]
val-=(val*客户[19])#折扣金额
打印('NCD='+str(100*客户端[19])+'%,-$'+str(“%0.2f”%NCD))
打印(“$”+%0.2f”%val)
如果客户端[20]!=无:
val=(val+客户端[20])
打印('W/S=+$'+str(客户端[20]))
打印(“$”+%0.2f”%val)
如果客户端[21]!=无:
val=(val+client[21])
打印('LOU=$'+str(客户端[21]))
打印(“$”+%0.2f”%val)
如果val<750:#如果val低于750,则适用最低保费
打印(“适用的最低保险费”)
val=750
打印('税前保费为'+'$'+str(“%0.2f”%val))#良好
如果客户[23]==0:#客户超过65岁,不征税
打印('根据Sagicor speadsheet,客户超过65')
其他:
税前=val*0.06
val=(税前+val)
打印('Premium Tax=+$'+str(“%0.2f”%PreTax))\
打印(“$”+%0.2f”%val)
如果客户端[25]!=无:
打印('RS=+$'+str(客户端[25]))
val=(val+client[25])
打印('Total=$'+str(“%0.2f”%val))
#如果val==客户机[26]:
#打印('Sagicor的总数与计算总数一致-顶部')
#其他:
#打印(“高级不同意-顶部”)
其他:
打印(‘不包括路边救援’)
打印('Total=$'+str(“%0.2f”%val))
#如果val==客户机[26]:
#打印('Sagicor的总数与计算的总数一致-底部')
#其他:
#打印('高级不同意-底部')
客户端=[]
输出=[]
打印('---行尾---')

如果要将脚本的输出写入文件,我看到两个选项。 第一个是处理python脚本中的编写:

#!/usr/bin/python
#I am here assuming that you use a Unix-like system (i.e. Not Windows )

file = open('textfile.txt','w')

... some code ...

file.write(myData +'\n')

#Don't forget to close the file at the end of the script
file.close()
注意:如果文件不存在,“w”选项会创建该文件,但它也会删除该文件的早期版本。如果要在现有文件的末尾添加行,则应使用“a”。 “\n”仅用于创建新行

另一个选项是:在脚本中简单地使用print statement

#My Script
... some code ...
print MyData
然后,使用以下命令在shell而不是空闲状态下运行脚本:

python SagicorPremiumCalculator2.py > textfile.txt
如果您运行的是Windows,那么肯定应该使用第一个选项(因为我不确定bash样式的命令在cmd中是否有效)


我希望这有帮助

您上面的语法是一个shell脚本,而不是python脚本。您想在python脚本中实现这一点吗?这不是有效的Python,这是一个shell命令。您能为我们提供SagicorPreniumCalculator2.py的代码吗?当您使用它而不重定向文件中的输出时,它会打印什么?您做得对。你能更具体地说明你遇到的错误吗?谢谢你花时间向我解释。我正在windows上工作,它工作正常。我现在只需要看看它的格式。