繁体   English   中英

将CSV文件转换为xlsx文件Python

[英]Convert CSV file to xlsx file Python

大家好,我正在寻找一种解决方案,我尝试将CS​​V文件转换为XLSX文件,然后将所有数据缩小为一列,并用; (请参见下面的图片)

您能帮我解决两个代码之一,以便在转换为csv文件时使数据表示吗? (看图片)

以下两个代码给出相同的结果:(重要的是,我在Jupyter Notebook上使用Python 3.6 env):


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


for csvfile in glob.glob(os.path.join('.', 'LOGS.CSV')):
    workbook = Workbook(csvfile[:-4] + '.xlsx')
    worksheet = workbook.add_worksheet()
    with open(csvfile, 'r') as f:
        reader = csv.reader((line.replace('\0','-') for line in f))
        for r, row in enumerate (reader):
            for c, col in enumerate(row):
                worksheet.write(r, c, col)
    workbook.close()

import os
import csv
import sys

from openpyxl import Workbook

data_initial = open("new.csv", "r")
sys.getdefaultencoding()
workbook = Workbook()
worksheet = workbook.worksheets[0]
with data_initial as f:
    data = csv.reader((line.replace('\0','') for line in data_initial), delimiter=",")
    for r, row in enumerate(data):
        for c, col in enumerate(row):
            for idx, val in enumerate(col.split('/')):
                cell = worksheet.cell(row=r+1, column=c+1)
                cell.value = val
workbook.save('output.xlsx')

这是我的CSV文件数据组织: 图片:这是我的CSV文件数据组织

这是将其转换为XLSX时得到的: 图片:这就是将其转换为XLSX时得到的

根据评论编辑

好的,所以我使用了@DeepSpace的程序

 import pandas as pd

 pd.read_csv('C:/Users/Pictures/LOGS.CSV')
   .to_excel('C:/Users/Pictures/excel.xlsx')

而且我仍然得到这个: 图像程序xlsx响应

好的解决方案:转换非常好。 但是在我的情况下,第一列以某种方式移动。 数据num字符串为空,第一列为其值...(请参见下图)

CSV文件

xlsx转换的文件

 import pandas as pd
    filepath_in = "C:/Users/Pictures/LOGS.csv"
    filepath_out = "C:/Users/Pictures/excel.xlsx"
    pd.read_csv(filepath_in, delimiter=";").to_excel(filepath_out)

您的文件有问题。 首先将它们重命名或另存为.txt文件 然后,如注释中所述,使用pandas(@DeepSpace)并指定定界符(@Marichyasana)。

特定

以分号分隔的列的重命名文本文件(例如LOGS1.txt ),例如:

0;2;DT#1970-01-01-00:46:09;55;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
1;2;DT#1970-01-01-00:46:25;71;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
2;2;DT#1970-01-01-00:46:28;74;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
3;2;DT#1970-01-01-00:46:30;76;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
4;2;DT#1970-01-01-00:46:32;78;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
5;2;DT#1970-01-01-00:46:34;80;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0
...

import pandas as pd


filepath_in = "C:/Users/Pictures/LOGS1.txt"
filepath_out = "C:/Users/Pictures/excel.xlsx"
pd.read_csv(filepath_in, delimiter=";").to_excel("foo.xlsx", index=False)

对第二个文件( LOGS2.txt )应用相同的过程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM