在python中将日期格式添加到现有文件路径时发生连接错误

2024-09-29 01:28:34 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,斯塔克弗劳尔斯,我是这里的新手,需要帮助

我最近学习了python中的pandas库,并尝试将输出文件自动化,我成功地使用了它。但当我想到将日期添加到输出路径时,我面临的错误是“只能将列表(而不是“str”)连接到列表”

有人能帮我吗…

#saving in a path

timestamp = datetime.datetime.now()
t = timestamp.year, timestamp.month, timestamp.day

path = r'C:\Users\Revanth\Desktop\pandas_tutorials\New_Idle_Artist_List.xlsx'

split_filename = path.split(".")
exportpath = os.rename(path, split_filename[:-1]+'-'+join(t))

writer = pd.ExcelWriter(exportpath,engine='xlsxwriter',datetime_format='mmm d yyyy')




**Error displayed** : runfile('C:/Users/Revanth/.spyder-py3/Idle_artist_appliction.py', wdir='C:/Users/Revanth/.spyder-py3') Traceback (most recent call last):

  File "C:\Users\Revanth\.spyder-py3\Idle_artist_appliction.py", line 71, in <module>
    exportpath = os.rename(path, [split_filename[:-1]+'-'+join(t)])

TypeError: can only concatenate list (not "str") to list

Tags: pathinpandas列表datetimepy3filenameusers
1条回答
网友
1楼 · 发布于 2024-09-29 01:28:34

下面是我的一个注释示例,您如何使用来自pathlib模块的Path类构造exportpath。乍一看它可能看起来很复杂,但从长远来看会有回报,因为一旦你习惯了,它会非常方便

from datetime import datetime
from pathlib import Path

path = Path(r'C:\Users\Revanth\Desktop\pandas_tutorials\New_Idle_Artist_List.xlsx')

datestring = datetime.now().strftime('%Y-%m-%d')
# e.g. '2020-06-28'

exportpath = path.parent/f'{path.stem}-{datestring}{path.suffix}'
# e.g. WindowsPath('C:/Users/Revanth/Desktop/pandas_tutorials/New_Idle_Artist_List-2020-06-28.xlsx')
  • 首先,我们从路径字符串创建一个路径对象(原始字符串模式,因为我们有一个反斜杠)
  • 使用strftime构造今天的年-月-日字符串
  • 创建导出路径path.parent是除文件名以外的所有内容。然后我们可以使用/将其与我们使用f-string构造的新文件名相结合path.stem是不带扩展名的文件名path.suffix唯一的扩展

参考文献:pathlibf-strings

相关问题 更多 >