将 CSV 文件转换为 xlsx 文件 Python
Convert CSV file to xlsx file Python
大家好,我正在寻找我的代码的解决方案,我尝试将 CSV 文件转换为 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('[=11=]','-') 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('[=12=]','') 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文件数据组织:
这就是我将其转换为 XLSX 时得到的结果:
根据评论编辑
好的,所以我使用了@DeepSpace 的 :
import pandas as pd
pd.read_csv('C:/Users/Pictures/LOGS.CSV')
.to_excel('C:/Users/Pictures/excel.xlsx')
我仍然得到这个:
好的解决方案:
转换很棒。但就我而言,第一列以某种方式移动了。 Data num String 什么都没有,第一列是它的值...(见下图)
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)
您的文件有问题。重命名或 save them as .txt
files first。然后如评论中所述,使用 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(filepath_out, index=False)
对第二个文件 (LOGS2.txt
) 应用相同的过程。
大家好,我正在寻找我的代码的解决方案,我尝试将 CSV 文件转换为 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('[=11=]','-') 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('[=12=]','') 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文件数据组织:
这就是我将其转换为 XLSX 时得到的结果:
根据评论编辑
好的,所以我使用了@DeepSpace 的
import pandas as pd
pd.read_csv('C:/Users/Pictures/LOGS.CSV')
.to_excel('C:/Users/Pictures/excel.xlsx')
我仍然得到这个:
好的解决方案: 转换很棒。但就我而言,第一列以某种方式移动了。 Data num String 什么都没有,第一列是它的值...(见下图)
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)
您的文件有问题。重命名或 save them as .txt
files first。然后如评论中所述,使用 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(filepath_out, index=False)
对第二个文件 (LOGS2.txt
) 应用相同的过程。