如何更改文件名时间戳?

str*_*rie 8 command-line filename timestamp

我按时间顺序有 dat 文件的名称:

FileName_YYYY_MM_DD_HHMM.dat
Run Code Online (Sandbox Code Playgroud)

是否有任何命令可以为每个时间戳添加 30 分钟?

hee*_*ayl 6

使用python

#!/usr/bin/env python2
import glob, re, os, datetime
os.chdir('/path/to/dir')
for f in glob.glob('*.dat'):
    ini_time = datetime.datetime.strptime(re.search(r'(?<=_)(?:\d|_)+(?=.dat$)', f).group(), '%Y_%m_%d_%H%M')
    fin_time = (ini_time + datetime.timedelta(minutes=30)).strftime('%Y_%m_%d_%H%M%S')
    os.rename(f, 'Filename_' + str(fin_time) + '.dat')
Run Code Online (Sandbox Code Playgroud)
  • os.chdir('/path/to/dir')将当前目录更改为包含.dat文件的目录。替换/path/to/dir为实际路径。

  • glob.glob('*.dat') 将找到以 .dat

  • ini_time变量将首先使用re模块从原始文件名中删除日期时间,然后找出哪个条目代表取出的字符串中的内容,以便我们可以将所需的时间添加到此

  • fin_time将包含结果时间,即ini_time加上 30 分钟

  • os.rename 将相应地重命名文件。

另请注意,对于连续的文件名(相差 30 分钟),重命名的文件将覆盖下一个,因此最好在重命名的文件名中添加秒数,以确保其安全。否则,您需要将重命名的文件保存到不同的目录,然后稍后用原始文件替换它们。