str*_*rie 8 command-line filename timestamp
我按时间顺序有 dat 文件的名称:
FileName_YYYY_MM_DD_HHMM.dat
Run Code Online (Sandbox Code Playgroud)
是否有任何命令可以为每个时间戳添加 30 分钟?
使用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 分钟),重命名的文件将覆盖下一个,因此最好在重命名的文件名中添加秒数,以确保其安全。否则,您需要将重命名的文件保存到不同的目录,然后稍后用原始文件替换它们。