【问题标题】:How to save a file to a specific directory and choose the file's name in python?如何将文件保存到特定目录并在python中选择文件名?
【发布时间】:2026-02-21 15:15:02
【问题描述】:

正如标题所说,我如何将文件(在这种情况下是先前选择的照片)保存到特定目录中并命名保存的文件(我想用今天的日期命名 - 例如:01-01-2016 .jpg)?

这是我的一些代码:

import os.path
import datetime
todays_date = datetime.date.today ()

def add_pic (pic):

    if not os.path.exists ("Pictures"):
        os.makedirs ("Pictures")
    photo_name = todays_date + ".jpg"
    pic.save ("Pictures/"photo_name)

我收到此错误:

TypeError: unsupported operand type(s) for +: 'datetime.date' and 'str'

对于这一行:

photo_name = todays_date + ".jpg"

另外,我也不确定最后一行,所以请帮忙!

【问题讨论】:

    标签: python image file save


    【解决方案1】:

    使用.strftime()“将表示由 gmtime() 或 localtime() 返回的时间的元组或 struct_time 转换为格式参数指定的字符串。”:

    photo_name = todays_date.strftime('%m-%d-%Y') + ".jpg"
    pic.save(os.path.join("Pictures",photo_name))
    

    还可以使用os.path.join() 将目录连接到文件名的跨平台方法。

    正如@Blckknght 在评论中所说:请注意'%m-%d-%Y' 是您可以更改订单的东西,例如'%Y-%m-%d' 是一个常见的变体。

    【讨论】:

    • 您可能想指出,strftime 的确切参数可以是提问者想要的任何内容('%Y-%m-%d' 在许多情况下可能会更好)。
    【解决方案2】:

    是的。上面的解决方案应该可以工作。误会你正在做的是用字符串添加时间值。

    【讨论】:

      【解决方案3】:

      这不起作用,因为datetime.date.today() 返回一个日期对象。尝试通过调用.__str__() 方法、.ctime() 方法或.strftime() 方法转换为字符串。
      https://docs.python.org/2/library/datetime.html#date-objects

      【讨论】:

        最近更新 更多