pythonで、ファイルの拡張子を.txt → .xlsx に変換したいです。
.txtがまとめられているディレクトリを/Users/txt
.xlsxに変換した後にファイルをまとめる先のパスを /Users/xlsx
とした場合、どのようにコードを打てばよいでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答4件
0
ベストアンサー
コメントだとインデントがうまくいきませんので、
こちらに、再投稿します。
lang
1#!/usr/bin/env python 2# -*- coding: utf-8 -*- 3import glob 4import os 5import shutil 6from_dir='/Users/txt' 7to_dir='/Users/xlsx' 8#from_dir='txt' 9#to_dir='xlsx' 10 11filenames = glob.glob( from_dir + "/*" ) 12 13for file in filenames: 14 # fname:ファイル名パスなし 15 fname = os.path.basename( file ) 16 17 # bname:ファイル名拡張子なし, ext:拡張子 18 bname, ext = os.path.splitext( fname ) 19 20 # パス + ファイル名拡張子なし + 拡張子 21 fpath=from_dir + '/' + bname + '.' + 'txt' 22 tpath=to_dir + '/' + bname + '.' + 'xlsx' 23 24 utf_file = open( fpath ) 25 sjis_file = open( tpath, 'w' ) 26 27 for line in utf_file: 28 sjis_file.write(unicode(line, 'utf-8').encode('shift-jis')) 29 30 utf_file.close() 31 sjis_file.close() 32 # コピー 33 #shutil.copyfile( fpath, tpath )
投稿2015/06/15 13:47
総合スコア129
0
本格的にやるには、ライブラリをインストールするしかなさそうです。
http://openpyxl.readthedocs.org/en/latest/
で、テキストを読んで、ファイル名をXXX.XLSXに変えて、上記のライブラリを使用して書き出す。
の繰り返しでできそうです。
投稿2015/06/15 12:57
総合スコア129
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
自分の環境には、Excelは入っていないので、OpenOffice( Open calc)で試してみましたが、
テキストのtxtの拡張子をxlsxに変換しただけでも読めますね。。。
本家のEXCELは、駄目なのですかね。。。
投稿2015/06/15 12:09
総合スコア129
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

0
pythonは、そんなに詳しくないのですが、ShellやPerlでいつもやってる方法で、書いてみました。
(もっと上手にやるほうほうが、あるかもですが。。。)
一応、コピーするという前提で書きました。移動の場合は変更してください。
lang
1#!/usr/bin/env python 2# -*- coding: utf-8 -*- 3import glob 4import os 5import shutil 6from_dir='/Users/txt' 7to_dir='/Users/xlsx' 8 9filenames = glob.glob( from_dir + "/*" ) 10 11for file in filenames: 12 # fname:ファイル名パスなし 13 fname = os.path.basename( file ) 14 15 # bname:ファイル名拡張子なし, ext:拡張子 16 bname, ext = os.path.splitext( fname ) 17 18 # パス + ファイル名拡張子なし + 拡張子 19 fpath=from_dir + '/' + bname + '.' + 'txt' 20 tpath=to_dir + '/' + bname + '.' + 'xlsx' 21 22 # 何をコピーしているか表示 23 print fpath + ' -> ' + tpath 24 25 # コピー 26 shutil.copyfile( fpath, tpath )
投稿2015/06/15 11:42
総合スコア129
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/15 15:15