Как преобразовать любой файл .csv в файл excel с помощью Python?

Я пытаюсь преобразовать любой файл .csv с этого пути в файл excel. Код работает, но мне нужно переименовать этот CSV-файл вручную. Есть ли способ прочитать и преобразовать любой файл .csv без его переименования? Ваш вклад высоко ценится. Большое спасибо!

import pandas as pd

read_file = pd.read_csv(r'C:/Processed_Report/Source1.csv')
read_file.to_excel (r'C:/Processed_Report/Source.xlsx', index = None, header=True)

@BigBen, да, именно поэтому я ищу синтаксис в Python для преобразования любого файла .csv по этому пути без переименования имени файла вручную в файл .xlsx и переименования его в Source.xlsx Спасибо.

QuickSilver42 09.12.2022 18:29

@BigBen извините, .ext там быть не должно. Я отредактировал свой вопрос. Спасибо за исправление.

QuickSilver42 09.12.2022 18:32
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
2
186
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я не уверен, понял ли я, но именно так вы можете прочитать все файлы внутри папки и преобразовать их в файлы Excel.

import os

for root, dirs, files in os.walk("C:/Processed_Report/", topdown=False):
    for name in files:
        base_name, ext = os.path.splitext(name)  #Split name, extension
        if ext in ".cvs":
            df = pd.read_csv(os.path.join(root, name))
            df.to_excel(os.path.join(root, f'{base_name}.xlsx')) 

@Christian, спасибо, что поделились кодом. После преобразования файла .csv в файл .xlsx с вашим кодом я хотел переименовать этот файл в Source.xlsx. Куда мне вставить этот код read_file.to_excel (r'C:/Processed_Report/Source.xlsx', index = None, header = True)

QuickSilver42 09.12.2022 18:24

Потому что я получаю это сообщение об ошибке, когда вставляю это в следующую строку NameError: имя 'read_file' не определено

QuickSilver42 09.12.2022 18:25

Измените base_name внутри функции pd.to_excel(...) следующим образом: df.to_excel(os.path.join(root, 'Source.xlsx')).

Cristian Festi 09.12.2022 18:35

Обратите внимание, если вы используете одно и то же имя выходного файла в случае нескольких файлов csv в папке, цикл каждый раз перезаписывает выходной файл.

Cristian Festi 09.12.2022 18:46

Дополнительный вопрос, Кристиан, если можно, столбец с числами автоматически добавляется в файл Source.xlsx. В файле CSV он имеет только 2 столбца (A, B), но в преобразованном файле Source.xlsx он добавил 1 столбец с номерами строк без заголовка, а также столбцы A и B. Любой совет, пожалуйста, спасибо

QuickSilver42 09.12.2022 19:39

Это индексный столбец, который нужно удалить, добавить index=False, чтобы сохранить функцию df.to_excel(os.path.join(root, f'{base_name}.xlsx'), index=False)

Cristian Festi 09.12.2022 23:32

Использование pathlib

from pathlib import Path

import pandas as pd


file_path = r"C:/Processed_Report"
files = [x for x in Path(file_path).glob("*csv")]
[pd.read_csv(x).to_excel(f"{file_path}/{x.stem}.xlsx", index=False) for x in files]

Другие вопросы по теме