我是Python新手,在大学学习网络安全时,我只做了一点工作。我正试着写一个工作(个人使用)的小脚本。代码不会循环并且不断崩溃,有人能帮忙吗
"""
Created on Fri Apr 16 10:28:50 2021
@author: lukem
"""
import datetime
from datetime import *
import sys
print("Commercial Divers Work Hours")
while True:
while True:
DT1 = input("Is it todays date?:").lower()
if DT1 == 'n' or DT1 == 'N':
DT2 = input("Enter Date?")
elif DT1 == 'Y' or DT1 == 'y':
print(datetime.now())
shrs = int(input("Start Time?:"))
fhrs = int(input("Finish time?:"))
thrs = int(input("Travel time?:"))
job = input("At what Job?:")
dp = input("Depth pay? How many meters?:")
wd = input("Welding allowance? y/n:")
if wd == 'y':
wd1 = int(input("How Many Millimeters?:"))
elif wd == 'n':
print("0")
break
if DT1 == 'Y' or DT1 == 'y':
print("Date: ",datetime.now())
print("Start Time: ",shrs)
print("Finish Time: ",fhrs)
print("Travel Time: ",thrs)
print("Job or Client: ",job)
print("Depth Allowance in meters: ",dp)
print("Welding allowance in mm: ", wd1)
elif DT1 == 'n' or DT1 == 'N':
print("Date: ",DT2)
print("Start Time: ",shrs)
print("Finish Time: ",fhrs)
print("Travel Time: ",thrs)
print("Job or Client: ",job)
print("Depth Allowance in meters: ",dp)
print("Welding allowance in mm: ", wd1)
file = open('Workhours7y.txt' , 'a')
sys.stdout = file
if DT1 == 'Y' or DT1 == 'y':
print("Date: ",datetime.now())
print("Start Time: ",shrs)
print("Finish Time: ",fhrs)
print("Travel Time: ",thrs)
print("Job or Client: ",job)
print("Depth Allowance in meters: ",dp)
print("Welding allowance in mm: ", wd1)
elif DT1 == 'n' or DT1 == 'N':
print("Date: ",DT2)
print("Start Time: ",shrs)
print("Finish Time: ",fhrs)
print("Travel Time: ",thrs)
print("Job or Client: ",job)
print("Depth Allowance in meters: ",dp)
print("Welding allowance in mm: ", wd1)
file.close()
Continue
不要使用sys.stdout=file。 在结束时关闭文件,当循环从头开始时,仍然尝试打印到关闭的文件,这不起作用,因为它已关闭
使用单独的命令写入文件
出现此错误是因为您使
sys.stdout
指向file
,然后关闭file
。问题是,print
写入sys.stdout
指向的任何文件,但您已经关闭了该文件去掉
sys.stdout = file
行,或者更改print
以使用file
参数:或者,直接写入文件:
相关问题 更多 >
编程相关推荐