いくつかの .xy ファイル (x と y の値を持つ 2 つの列) があります。それらすべてを読み取って、「y」値を単一のExcelファイルに貼り付けようとしました(「x」値はこれらすべてのファイルで同じです)。これまでのコードはファイルを 1 つずつ読み取りますが、非常に低速です (各ファイルで約 20 秒かかります)。かなりの数の .xy ファイルがあり、時間がかなりかかります。私が今まで持っているコードは次のとおりです。
import os,fnmatch,linecache,csv
from openpyxl import Workbook
wb = Workbook()
ws = wb.worksheets[0]
ws.title = "Sheet1"
def batch_processing(file_name):
row_count = sum(1 for row in csv.reader(open(file_name)))
try:
for row in xrange(1,row_count):
data = linecache.getline(file_name, row)
print data.strip().split()[1]
print data
ws.cell("A"+str(row)).value = float(data.strip().split()[0])
ws.cell("B"+str(row)).value = float(data.strip().split()[1])
print file_name
wb.save(filename = os.path.splitext(file_name)[0]+".xlsx")
except IndexError:
pass
workingdir = "C:\Users\Mine\Desktop\P22_PC"
os.chdir(workingdir)
for root, dirnames, filenames in os.walk(workingdir):
for file_name in fnmatch.filter(filenames, "*_Cs.xy"):
batch_processing(file_name)
どんな助けでも大歓迎です。ありがとう。