5

フォルダー構造内のすべてのテキスト ファイル (タブ区切り) を .xls 形式に自動変換し、列と行の形状をそのまま維持する最も安価な方法を探しています。

編集:これはトリックでした:

import xlwt
import xlrd
f = open('Text.txt', 'r+')
row_list = []
for row in f:
    row_list.append(row.split())
column_list = zip(*row_list)
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Sheet1')
i = 0 
for column in column_list:
    for item in range(len(column)):
        worksheet.write(item, i, column[item])
    workbook.save('Excel.xls')
    i+=1
4

2 に答える 2

2

最も簡単な方法は、すべてのファイルの名前を *.txt から *.xls に変更することです。Excel は、元の形状を維持しながら、データを自動的に分割します。

私はあなたのためにコードを書くつもりはありませんが、ここから始めましょう:

  • を使用してディレクトリの内容を一覧表示できますos.listdir()
  • とを使用os.path.isdir()os.path.isfile()て、最初のディレクトリで見つけた各「もの」がファイルまたはディレクトリであるかどうかを確認し、それに応じて処理することができます
  • os.rename()ファイルの名前を変更したり、ファイルos.remove()を削除したりするために使用できます
  • os.path.splitext()ファイル名と拡張子を分割したりfile.endswith('.txt')、正しいファイルのみを操作したりするために使用できます
于 2013-04-29T08:31:20.743 に答える
0

これはどう?

import xlwt
textfile = "C:/Users/your_path_here/Desktop/test.txt"

def is_number(s):
    try:
        float(s)
        return True
    except ValueError:
        return False        


style = xlwt.XFStyle()
style.num_format_str = '#,###0.00'  

#for textfile in textfiles:
f = open(textfile, 'r+')
row_list = []
for row in f:
    row_list.append(row.split('|'))
column_list = zip(*row_list)
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Sheet1')
i = 0
for column in column_list:
    for item in range(len(column)):
        value = column[item].strip()
        if is_number(value):
            worksheet.write(item, i, float(value), style=style)
        else:
            worksheet.write(item, i, value)
    i+=1
workbook.save(textfile.replace('.txt', '.xls'))

すみません、間違ったものを貼り付けたに違いありません...

于 2016-11-04T16:44:33.150 に答える