2014-09-17 4 views
-1

로깅 도구에서 잘못된 형식을 수정 한 후 새 파일을 읽고 쓰는 python 스크립트가 있습니다. 로그 파일의 각 줄은 새 레코드이며 줄 데이터의 처음 19 자에서 데이터를 추출하여 새 파일 이름 끝에 추가 할 수 있기를 원합니다. 라인 데이터의
시작은 0는 새로운 기록의 시작 인 후 다음과 같이이 0 20140617191307240처럼 보이는 것은 그래서 나는에 추가 한 후 yyyy-mm-dd를 추출 할 YYYYMMDDHHMMSSmmm
의 날짜 형식으로 된 날짜 부분 20140617191307240입니다 그래서데이터 파일의 라인에서 날짜를 가져와 파이썬에서 새 파일 이름에 추가하십시오.

현재 파일 이름
4222124650669009.archive

후 쓰기같은 새 파일 이름의 끝 귀하의 예를 20140617191307240에, 날짜 문자열을 읽어

#!/usr/bin/python 

    from sys import argv 
    import os 

    script, filename = argv 

    print "Starting Processing" 

    newfilename = filename + ".new" 

    print " Old Filename : %r" % filename 
    print " New Filename : %r" % newfilename 

    print " Rebuild Starting" 

    source = open(filename, 'r') 
    target = open(newfilename, 'w') 

    data = False; 

    for line in source: 
     if line[0:5] == '0 201' and data : 
      target.write('\n' + line.strip().replace('\r',' ').replace('\t',' ')) 
    #  print " " + line[0:132] 
     else : 
      target.write(line.strip().replace('\r',' ').replace('\t',' ')) 
    #  print "+" + line[0:132] 
     data = True,  

    if data : 
     target.write('\n') 

    source.close(); 
    target.close(); 


    print "Finished Processing" 

답변

0

을 다음과 같이3210 4222124650669009.archive.new.2014-06-17

내가 제대로 그것에 대해 이동하는 방법을하지 확신, 내 파이썬 스크립트입니다. 새 파일 이름에 추가해야하는 형식으로 변환하십시오.

그런 다음 os.rename을 사용하여 파일 이름을 바꿉니다.

>>> a = '20140617191307240' 
>>> file = '4222124650669009.archive' 
>>> to_date = datetime.datetime.strptime(a,"%Y%m%d%H%M%S%f").strftime('%Y-%m-%d') 
>>> new_file_name = file + '.new.' + to_date 
>>> new_file_name 
'4222124650669009.archive.new.2014-06-17' 
>>> os.rename(file,new_file_name) 
관련 문제