** Обновление от 08.01.2009 0945 EST
Я передал скрипт через функцию, заданную bhakta0007, но получил ошибку пути «Системе не удается найти указанный путь:».
После проверки я добавил приведенный ниже оператор в конец скрипта, чтобы передать список через функцию, и код работает.
для f в списке fList:
excel_csv (п-списка)
Я добавил ответ на вопрос ниже.
У меня есть небольшой скрипт, который я запускаю для преобразования файлов Excel в .csv. В настоящее время я должен повторить сценарий с жестко закодированными путями. Текущие пути имеют точно такую же структуру, за исключением трехзначного идентификатора, из которого я хотел бы создать список, из которого я могу вызывать. Ниже мой код. Вы увидите, что у меня есть переменные с путями, и я передаю эти переменные, где это необходимо. Я изучил os.path, glob и pathlib, но не могу найти хорошее решение проблемы.
Оригинальный код
import os
import glob
import pandas as pd
import shutil
Target_Path = os.path.join(os.path.dirname('//fs/Unprocessed/261/Edlog/Working/'))
Move_Path = os.path.join(os.path.dirname('//fs/Unprocessed/261/Edlog/ToProcess/'))
Process_Path = os.path.join(os.path.dirname('//fs/Unprocessed/261/Edlog/Processed/'))
os.chdir(Target_Path)
try:
for f in glob.glob('*.xls'):
out = f.split('.')[0]+'.csv'
df = pd.read_excel(f,)
df.to_csv(out, index=False)
finally:
for f in glob.glob('*.xlsx'):
out = f.split('.')[0]+'.csv'
df = pd.read_excel(f,)
df.to_csv(out, index=False)
xlsCounter = len(glob.glob1(Target_Path,"*.xls"))
xlsxCounter = len(glob.glob1(Target_Path,"*.xlsx"))
csvcounter = len(glob.glob1(Target_Path,"*.csv"))
if csvcounter == xlsCounter + xlsxCounter :
print('Complete Convert')
else:
print('Failed Convert')
for files in glob.glob('*.csv'):
shutil.move(files, Move_Path)
for files in glob.glob('*.xls'):
shutil.move(files, Process_Path)
for files in glob.glob('*.xlsx'):
shutil.move(files, Process_Path)
if len(os.listdir(Target_Path) ) == 0:
print('Complete Move')
else:
print('Failed Move')