[英]how to write dates and list to a text file with Python?
我正在尝试制作一个程序,从用户给出的日期开始计算用户输入的各种活动的屏幕时间,然后将它们保存到文本文件中。 但是,在我的代码的最后一行之后出现以下错误:
File "C:\Users\Omistaja\PycharmProjects\tehtava7_3\screen_times.py", line 48, in main
filename.write("{}: {}".format(pvm, ready_list))
AttributeError: 'str' object has no attribute 'write'
此外,文件中的文本应类似于以下示例:
2020-02-27: 0/0/0/0
2020-02-28: 180/0/0/0
2020-02-29: 70/120/0/0
2020-03-01: 75/0/120/0
到目前为止的代码:
import datetime
def convert_date_text_to_datetime_object(date_as_text):
"Returns a datetime.date object converted from string 'date_as_text'."
date_as_list = date_as_text.split(".")
day, month, year = [int(part) for part in date_as_list]
return datetime.date(year, month, day)
def main():
filename = input("Enter the name of the file to be created for your screen time data:\n")
file = open(filename, 'w')
date_text = input("Enter the start date in format 'DD.MM.YYYY':\n")
pvm = convert_date_text_to_datetime_object(date_text)
print("Enter your screen watching time for each day (in minutes) in the format '[Phone minutes] [PC minutes] [TV minutes] [other minutes]")
days = 0
syotteet_lista = []
syote = input("Enter your screen time on {}:".format(pvm))
while syote != "":
syotteet_lista.append(syote)
pvm = pvm + datetime.timedelta(days = 1)
days += 1
syote = input("Enter your screen time on {}:".format(pvm))
for syote in syotteet_lista:
uusi_lista = []
luvut = syote.split(" ")
for i in luvut:
uusi_lista.append(i)
ready_list = '/'.join(uusi_lista)
filename.write("{}: {}".format(pvm, ready_list))
filename
是一个字符串。 您需要改用打开file
的文件。
或者:
with open(filename, 'w') as f:
f.write("{}: {}".format(pvm, ready_list))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.