在Python中向文件名添加时间戳

2024-05-23 17:59:44 发布

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

我想给我的文件名添加一个时间戳,以便于识别最新的文件

为此,我尝试了以下代码:-

csv_file = pd.read_csv('C:/Users/anujp/Desktop/sort/Entity_Resolution_Project/data/csv_files/all_web_final_ds.csv',usecols=['page_title'])
page_tile_list=list(csv_file['page_title'])

filename1 = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
timestamp_string = str(filename1)
with open('C:/Users/anujp/Desktop/sort/Entity_Resolution_Project/data/text_files/all_ds_pagetitles.txt' + timestamp_string,'w',encoding='utf-8',) as f:
    for item in page_tile_list:
        f.write('%s\n'%item)

不幸的是,我得到了一个错误

OSError: [Errno 22] Invalid argument: 'C:/Users/anujp/Desktop/sort/Entity_Resolution_Project/data/text_files/all_ds_pagetitles.txt2020-03-19 16:49:21'

请帮我做这个


Tags: csvprojectdatapagedsfilesallsort
2条回答

pathlib使操作文件路径变得容易。对于单个文件来说,这可能有些过分,但如果您使用的是一系列文件路径,则可以简化工作

import pathlib,datetime
dt = datetime.datetime.now().strftime("%Y-%m-%d %H-%M-%S")
fpath = 'C:/Users/anujp/Desktop/sort/Entity_Resolution_Project/data/text_files/all_ds_pagetitles.txt'
pp = pathlib.PurePath(fpath)

轻松分离路径的不同部分:

>>> print(pp.parent)
C:\Users\anujp\Desktop\sort\Entity_Resolution_Project\data\text_files
>>> print(pp.stem)
all_ds_pagetitles
>>> print(pp.suffix)
.txt
>>> 

创建新名称和新路径

>>> newname = f'{pp.stem}-{dt}{pp.suffix}'
>>> pp.with_name(newname)
PureWindowsPath('C:/Users/anujp/Desktop/sort/Entity_Resolution_Project/data/text_files/all_ds_pagetitles-2020-03-19 09-35-57.txt')
>>>

Windows不允许在文件路径中使用冒号,因为该字符保留为驱动器标签和文件路径的分隔符,因此您可能希望将timestamp_string更改为类似以下内容:

filename1 = datetime.now().strftime("%Y-%m-%d %H%M%S")
timestamp_string = str(filename1)

相关问题 更多 >