def myApp():
# save all .csv as .xlsx
import pandas as pd
import glob
savepath = '/home/pedro/myPython/pandas/'
files = glob.glob(savepath + '*.csv')
for csv in files:
print(csv)
df = pd.read_csv(csv_file)
name = csv.split('.')
df.to_excel(name[0] + '.xlsx', index=False)
(Sep-01-2022, 07:49 AM)Pedroski55 Wrote: [ -> ]def myApp():
# save all .csv as .xlsx
import pandas as pd
import glob
savepath = '/home/pedro/myPython/pandas/'
files = glob.glob(savepath + '*.csv')
for csv in files:
print(csv)
df = pd.read_csv(csv_file)
name = csv.split('.')
df.to_excel(name[0] + '.xlsx', index=False)
Thank you so much for your help. But used this converted to xlsx seems got error format. Actually I have try other way converted it as this wrong format yet, so still try csv library and pandas. You can refer to attached.
There was a mistake in line 11
Quote:>>> myApp()
/home/pedro/myPython/pandas/csv_files/poll_count20BECW.csv
Traceback (most recent call last):
File "/usr/lib/python3.8/idlelib/run.py", line 559, in runcode
exec(code, self.locals)
File "<pyshell#2>", line 1, in <module>
File "<pyshell#1>", line 11, in myApp
NameError: name 'csv_file' is not defined
Line 11 should be:
df = pd.read_csv(csv)
This very quickly converted 3 csv files to Excel.
def myApp():
# save all .csv as .xlsx
import pandas as pd
import glob
savepath = '/home/pedro/myPython/pandas/csv_files/'
files = glob.glob(savepath + '*.csv')
for csv in files:
print(csv)
df = pd.read_csv(csv)
name = csv.split('.')
df.to_excel(name[0] + '.xlsx', index=False)
Output:
>>> myApp()
/home/pedro/myPython/pandas/csv_files/poll_count20BECW.csv
/home/pedro/myPython/pandas/csv_files/Log.csv
/home/pedro/myPython/pandas/csv_files/poll_count20BECW (1).csv
>>>
I often do this the other way round: use pandas to create an Excel, then use pandas to convert that to csv.
Then I can import the csv into MySQL.
import glob
import os
import csv
import xlsxwriter
files = glob.glob(r'C:\Users\Sam\OneDrive\Desktop\python_demo\*.csv')
workbook = xlsxwriter.Workbook(r'C:\Users\Sam\OneDrive\Desktop\python_demo\Log.xlsx')
row_numer = 0
for file_path in files:
file = open(file_path)
csvreader = csv.reader(file)
file_name = os.path.basename(file_path)
file_no_ext = os.path.splitext(file_name)[0]
worksheet1 = workbook.add_worksheet(file_no_ext)
row_numer = 0
for row in csvreader:
for index in range(len(row)):
worksheet1.write(row_numer, index, row[index])
row_numer += 1
file.close()
workbook.close()
import csv
import openpyxl
def csv_to_excel(csv_filename, excel_filename):
# Read CSV file
csv_data = []
with open(csv_filename) as f:
csv_data = [row for row in csv.reader(f)]
# Write to Excel file
workbook = openpyxl.workbook.Workbook()
worksheet = workbook.active
for row in csv_data:
worksheet.append(row)
workbook.save(excel_filename)
if __name__ == "__main__":
csv_to_excel("Log.csv", "Log.xlsx")
Tried two ways to converted from .csv to 。xlsx.content format is string,but save as .xlsx by manual format keep it.
Looks good!
Everything OK now??