2017-10-10 92 views
1

我剛剛開始使用Python中的一些數據,我是一個隨身攜帶的初學者!我需要將數百個文件名從%Y%m%d%H%M%S(例如'20170125211201')轉換爲unix時代。我能這樣做單獨的文件與將當前處於%Y%m%d%H%M%S的多個文件重命名爲Python中的unix時代

>>> import os 
>>> f='20170125211201' 
>>> import time 
>>> date_time='20170125204151' 
>>> pattern='%Y%m%d%H%M%S' 
>>> epoch=int(time.mktime(time.strptime(date_time,pattern))) 
>>> new_name='{}'.format(epoch) 
>>> os.rename(f,new_name) 

我仍然需要做同樣的事情到上百的其他文件具有相同的文件模式,但有沒有運氣。 我真的很感激任何幫助!

+0

嘗試匹配,提取時間喜歡用正則表達式的文件名。 – georgexsh

回答

0

您可以使用此代碼段解決您的任務:

import datetime 
import glob 
import os 
import shutil 

input_dir = '/home/username/input_dir' # here should be path to directory with input files 
output_dir = '/home/username/output_dir' # here should be path to output directory for new files 
files = glob.glob(os.path.join(input_dir, '*')) 

for filename in files: 
    basename = os.path.basename(filename) 
    basename, extension = os.path.splitext(basename) 
    try: 
     epoch = int(datetime.datetime.strptime(basename, '%Y%m%d%H%M%S').timestamp()) 
    except: 
     print('Unexpected format of filename: {}'.format(filename)) 
    out_filename = os.path.join(output_dir, ''.join([str(epoch), extension])) 
    shutil.copy(filename, out_filename) 
相關問題