【问题标题】:Specify date in ouput file name using python使用 python 在输出文件名中指定日期
【发布时间】:2019-11-23 12:41:48
【问题描述】:

我的代码是这样的

import csv
import datetime

now = datetime.datetime.now()
month_year = (now.month, now.year)
print(month_year)

outputfilename = 'Filename'+month_year+'.csv'
print(outputfilename)

print(month_year) 获取我的月份年份

(11, 2019)

我希望日期在我的文件名中

outputfilename = 'Filename'+month_year+'.csv'
print(outputfilename)

给我以下错误

    outputfilename = 'Filename'+month_year+'.csv'
TypeError: must be str, not tuple

有什么建议吗?

【问题讨论】:

    标签: python csv datetime


    【解决方案1】:

    在线:
    month_year = (now.month, now.year),
    您将变量 month_year 声明为元组而不是字符串(如例外所述)。

    将行更改为: month_year = now.month

    【讨论】:

      【解决方案2】:

      错误实际上解释了它:您不能将字符串与tuple 对象连接(monthyear 在这里是一个元组)。如果您希望它类似于Filename(11, 2019).csv,您可以使用:outputfilename = 'Filename' + str(month_year) +'.csv'

      但是有很多不错的命名选项,而不是Filename(11, 2019).csv。如果您提供所需的确切输出,我们可以为您提供帮助。

      【讨论】:

        【解决方案3】:

        在python中,你只能使用带有“加号”的字符串类型。 所以我建议你把你的代码改成如下格式。

        import csv
        import datetime
        now = datetime.datetime.now()
        month_year = (now.month, now.year)
        print(month_year)
        outputfilename = 'Filename'+'_'+str(month_year[0])+'_' + str(month_year[1]) + '.csv'
        print(outputfilename)
        

        【讨论】:

          【解决方案4】:

          您可以像这样使用month_year = str(now.month) +"_" + str(now.year),您的文件名将是Filename_11_2019.csv

          【讨论】:

            【解决方案5】:

            您无法打印 tuple/list/int+str,因此您需要将您的 month_year 变量转换为 string 才能使用它:

            month_year = str((now.month, now.year))
            

            这将给出:

            '(11, 2019)'
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-10-27
              • 2023-02-16
              • 2023-03-30
              • 1970-01-01
              • 1970-01-01
              • 2018-06-06
              相关资源
              最近更新 更多