2014-08-27 1 views
0

다른 날짜로 date.csv 파일이 있는데 타임 스탬프로 변환 할 수 없습니다. 예 : 나는 위의 날짜로 변환하려고유닉스를 사용하여 날짜를 타임 스탬프로 변환 할 때

Mar 24 2014 
Apr 1 2014 
Aug 25 2014 

: - - :

date.csv 다음 날짜가

mm/DD/YYYY 0시 0분 0초 형식
03/24/2014 00:00:00 
04/01/2014 00:00:00 
08/25/2014 00:00:00 

즉, 결과를 새로운 파일, 즉 date1.csv에 저장합니다.

어떻게하면됩니까?

+1

하 ve는'date'를 사용하여 시도 했습니까? 맨 페이지를 읽으십시오. csv는 CSV입니까 아니면 공백으로 구분 된 입력란입니까? – Daenyth

+0

날짜가 파일의 한 열 (예 : 3 열)에 나타나고 날짜를 변환 할 방법이 필요합니까? 사용할 수있는 도구에 제한이 있습니까? 예를 들어, Perl은 [Text :: CSV] (http://search.cpan.org/perldoc?Text%3A%3ACSV)를 사용하여 CSV 파일을 읽고 쓰고 [POSIX :: strptime] (http : // search .cpan.org/perldoc? POSIX % 3A % 3Astrptime) 및 [POSIX :: strftime] (http://perldoc.perl.org/POSIX.html#strftime)을 참조하십시오. Text :: CSV 및 POSIX :: strptime을 설치해야 할 수도 있습니다. –

답변

1

당신은 변환을 수행하기 위해 GNU 날짜 유틸리티를 사용할 수 있습니다 :

date +"%m/%d/%Y %H:M:%S" -d "Mar 24 2014" 
03/24/2014 00:00:00 
문제는 당신이 사용할 수있는 도구를 지정하지 않지만,이 CSV 파일에 읽기 핸들 파이썬의 기본 솔루션입니다

, 날짜를 변환하고, 다른 CSV 파일로 출력 :

#!/usr/bin/python 

import csv 
from datetime import datetime 
import sys 

DATE_COLUMN = 3 # Or whatever column has the date 

input_file = sys.argv[1] 
output_file = sys.argv[2] 

with open(input_file) as i_f: 
    reader = csv.reader(i_f) 
    with open(output_file, 'w') as o_f: 
     writer = csv.writer(o_f) 
     for row in reader: 
      date = datetime.strptime(row[DATE_COLUMN], "%h %d %Y") 
      row[DATE_COLUMN] = date.strftime("%m/%d/%Y %H:M:%S") 
      writer.writerow(row) 

사용법 :

python csv_date_converter.py input_file output_file 
+0

출력에 각 행의 관련 필드를 어떻게 매핑합니까? –

+0

당신은 CSV의 다른 필드에서 그것을 꺼내는 것을 의미합니까? sed/awk를 사용할 수 있지만 파이썬 표준 라이브러리의 ['csv'] (https://docs.python.org/2/library/csv.html)와 같은 CSV 라이브러리를 사용하는 것이 좋습니다. – bjmc

+1

대략'date' 명령에 전달 된 데이터는 CSV 파일에서 하나의 필드이므로 라인에서 날짜 필드를 추출한 후 입력 행마다 한 번씩 'date' 명령을 호출해야합니다. 그런 다음 대체 날짜 값으로 행을 다시 작성하십시오. 제안서는 하나의 가치를 매핑합니다. 이는 전체 작업의 중요한 구성 요소이지만 전체 작업은 아닙니다. –

관련 문제