2017-10-10 12 views
1

Pythonでいくつかのデータを使い始めたばかりですが、私は初心者です!私は '20170125211201'のような%Y%m%d%H%M%Sから数百のファイル名をunixエポック時間に変換する必要があります。私はまだ同じファイルパターンと他のファイルの数百人に同じことを行う必要があるが、運がなかったしているPythonで複数のファイルを現在の%Y%m%d%H%M%Sで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) 
関連する問題