繁体   English   中英

如何使用 Python 将日期和列表写入文本文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM