2017-12-21 46 views
1

Pythonコードを使用していくつかの.csvファイルを.xlsに変換しましたが、ファイルを開こうとするとエラーが表示されます: "COUNT_DIST2.xlsにアクセスできません。破損しているか、応答していない、または読み取り専用のサーバーにあります。 このプロジェクトでは、.csvと.xlsの2つのファイルが多数作成されていますが、いずれも私にこの問題を与えていません。私はおそらく私は何か間違っていると思っています。私は他のすべての文書を開くことができるので、これはネットワークエラーまたはオフィスエラーではないと確信しています。Pythonコードで作成したExcelファイルを開くことができません

コードが取り付けられている。

import pandas as pd 
import numpy as np 
from xlrd import open_workbook 
from xlwt import Workbook 
from xlutils.copy import copy 
from openpyxl import load_workbook 
import matplotlib.pyplot as plt 
import xlwt 
import os 
path = ('C:\Users\PETERemote\PycharmProjects\untitled\distributions') 
data = [] 
count =1 
count2 = 0 
for files in os.listdir(path): 
    if files.endswith("COUNT16_DISTRIBUTION" + str(count*1) + ".csv"): 
     count += 1 
count2 = count-2 
print(count2) 
#print(count2 = count) 

count3=1 
file_name = "COUNT16_DISTRIBUTION" + str(count3*1) + ".csv" 
while (count3<=count2): 
    with open(file_name) as f: 
     for line in f: 
      data.append([word for word in line.split(" ") if word]) 
    wb = xlwt.Workbook() 
    output_file = open("COUNT16_DIST" + str(count3 * 1) + ".xls", 'w') 
    count3 += 1 
    sheet = wb.add_sheet("Sheet1") 
    for row_index in range(len(data)): 
     for col_index in range(len(data[row_index])): 
      sheet.write(row_index, col_index, data[row_index][col_index]) 
    wb.save(output_file) 
    data = [] 
    output_file.close() 
+0

代わりにxlsxを使用してみませんか? – bigbounty

+0

私はxlsxを試しました。私が見ているエラーは次のとおりです:フォーマットまたはファイル拡張子が有効でないため、Excelはファイルを開くことができません。ファイル名が破損していないこと、およびファイル拡張子がファイルの形式と一致していることを確認します。 – anvinder

+0

あなたはpython経由でファイルを開こうとしていますか? – bigbounty

答えて

2

ここxlsxwriterを使用した例です:

import os 
import glob 
import csv 
from xlsxwriter.workbook import Workbook 


for csvfile in glob.glob(os.path.join('.', '*.csv')): 
    workbook = Workbook(csvfile[:-4] + '.xlsx') 
    worksheet = workbook.add_worksheet() 
    with open(csvfile, 'rt', encoding='utf8') as f: 
     reader = csv.reader(f) 
     for r, row in enumerate(reader): 
      for c, col in enumerate(row): 
       worksheet.write(r, c, col) 
    workbook.close() 

FYI、/書き込みエクセル XLSX/XLSMファイルを読み込むことができopenpyxlと呼ばれるパッケージには、もありますが私はそれをテストし、うまくいきます。

+0

これは非常に素晴らしいですが、私はちょっと不思議です:このコードを "open(Excelfile、 'w '、encoding =' utf8 ')w:[do:Excelに書き込む] "既存の" open() "ステートメント内のコードの並べ替え? – FatihAkici

関連する問題