본문 바로가기

Programing/Python

Python CSV 파일을 xls 파일로 변환하기 / convering csv2xls using Python (csv to xls)


csv파일을 xls파일료 변환하기 위해서 googling한 결과 

에서 python converter를 찾을 수 있었다. 

다운받아서 압축을 풀면 

csv2xls.py가 있다. 
main을 보니 아래와 같이 옵션이 있다. 실행해보쟈 

def main():
parser = optparse.OptionParser()
parser.add_option("-i", "--infile_names", dest="infile_names", default="", help="set infilenames")
parser.add_option("-o", "--outfile_name", dest="outfile_name", default="", help="set outfilename")
parser.add_option("-s", "--sheet_names", dest="sheet_names", default="", help="set sheetnames")
parser.add_option("-f", "--formats", dest="formats", default="", help="set colum or row formats")
parser.add_option("-t", "--transpose_formattings", dest="transpose_formattings", default="", help="set transpose formattings")
parser.add_option("-n", "--font_names", dest="font_names", default="", help="set font names")
parser.add_option("-m", "--font_metrics_files", dest="font_metrics_files", default="", help="set font metrics files")
parser.add_option("-w", "--column_widths", dest="column_widths", default="", help="set colum widths")
parser.add_option("-r", "--assume_rownames", dest = "assume_rownames", default="", help="set handling of rownames")
parser.add_option("-x", "--assume_colnames", dest = "assume_colnames", default="", help="set handling of colnames")
parser.add_option("-c", "--convert_to_floats", dest = "convert_to_floats", default="", help="set conversion mode")


위의 python스크립트를 사용하기 위해서 install하는 방법은 README에 설명되어있으나 좀 거지 같다. 

Installation

    * Install a version of Python for your system.
    * Download the tarball.
    * Uncompress the tarbal: "tar -xjvf csv2xls-<version>.bz2".
    * Cd to the umcompressed files: "cd csv2xls-<version>".
    * To install csv2xls, run: "./configure; sudo make install".
    * csv2xls install in "/opt/csv2xls". A bash script called "csv2xls" will be installed in "/usr/bin".
    * To uninstall, run "sudo make uninstall".

Makefile 파일을 열어보면 

install하는 부분을 아래와같이 적어 놨으니 적절히 안된부분을 따라서 수행한다. 

install : 
    cp -f ./src/csv2xls /usr/bin/csv2xls 
    cp -f ./src/csv2xls.py /opt/csv2xls/csv2xls.py 
    cp -f ./tarballs/external.bz2 /opt/csv2xls/ 
    tar -xjvf /opt/csv2xls/external.bz2 > /dev/null
    rm -rf /opt/csv2xls/data 
    mkdir -p /opt/csv2xls/data/
    cp -f ./data/test.csv /opt/csv2xls/data/test.csv
    python /opt/csv2xls/csv2xls.py -i ./data/test.csv -o ./data/test.xls 
    rm -rf /opt/csv2xls/data/ 
    rm -f /opt/csv2xls/external.bz2 
    # make install successfully finished 

붉은 부분을 직접 /opt/csv2xls/ 에가서 해당 디렉토리에 풀어 주었다. ;; 

반대는 요렇게 하면 된다. xls를 csv로 변환(convert)하기 
다운 받아서 쓰면 됩니다. 

xls를 다시 csv로 변환할 일이 생겨서 다시 씁니다. 위의  
xls2csv.0.4.py는 실행 스크립트이고 실제 실행을 위해서는 library가 필요한데 http://pypi.python.org/pypi/xlrd 여기서 다운로드 한다.

FileTypePy VersionUploaded onSize# downloads
xlrd-0.7.1.tar.gz (md5) Source 2009-06-01 115KB 19045
xlrd-0.7.1.win32.exe (md5
created with Python 2.7.1 on Win7Pro 32bit
MS Windows installer any 2011-01-01 306KB 3767
xlrd-0.7.1.win32.msi (md5) MS Windows MSI installer any 2011-01-01 272KB 1311
xlrd-0.7.1.zip (md5) Source 2009-06-01 122KB 28541
    난 unix계열이라  tar.gz으로 된 파일을 받았다.

    풀면 setup.py라는 것이 나오는데 sudo python setup.py install 을 치면 된다.
    문제 없이 install이 되었다면 python shell에서 import xlrd 를 쳐서 import가 되면 이제 xls2csv.0.4.py를 사용할 수 있게된다.

    python xls2csv.0.4.py -i ./asdf.xls -o jin.csv
    라고 치면 asdf.xls 파일이 jin.csv파일로 저장된다. 

    난 성공 !