Я пытаюсь запустить сценарий, который считывает файл TXT, который содержит список путей файла для Excel, и сохранить каждый в качестве PDF в указанном каталоге. Я могу заставить его прочитать файл TXT и проанализировать список путей файла без проблем, но он сталкивается с ошибкой, когда он пытается сохранить файл как PDF.
def save_pdfs(files_list,export_folder):
for line_item, filename in enumerate(files_list, start=1):
excel = client.Dispatch("Excel.Application")
excel.Application.DisplayAlerts = False
print(line_item, f'{filename}')
try:
wb = excel.Workbooks.Open(filename, ReadOnly=True)
work_sheets = wb.Worksheets[0]
if len(str(line_item)) == 1:
work_sheets.ExportAsFixedFormat(0, f'{export_folder}\\0{line_item}')
else:
work_sheets.ExportAsFixedFormat(0, f'{export_folder}\\{line_item}')
except Exception as e:
print(f"An error occurred: {e}")
finally:
wb.Close(False)
excel.Application.DisplayAlerts = True
excel.Quit()
< /code>
И всякий раз, когда я запускаю это, я получаю следующую ошибку для каждого из файлов: < /p>
An error occurred: (-2147352567, 'Exception occurred.', (0, 'Microsoft Excel', 'Document not saved. The document may be open, or an error may have been encountered when saving.', 'xlmain11.chm', 0, -2146827284), None)
< /code>
У меня нет Excel, запущенного, когда я запускаю скрипт, и я проверял сами файлы, и никто больше не открыт файл. Если кто -то еще столкнулся с подобной ситуацией, пожалуйста, дайте мне знать, что вы сделали, чтобы исправить ее. Я заполнил свой тестовый файл, выбрав файлы, щелкнув правой кнопкой мыши и выбрав «копию в качестве пути» и вставая в текстовый файл.from win32com import client
from tkinter import filedialog, messagebox
from pypdf import PdfWriter
import glob
def pdf_merge(directory):
merger = PdfWriter()
pdf_file_list = glob.glob(f'{directory}\\*.pdf')
for pdf in pdf_file_list:
merger.append(pdf)
merger.write(f'{directory}\\Merged.pdf')
merger.close()
def read_filenames(filepath):
filenames = []
try:
with open(filepath, 'r') as file:
for line in file:
filename = line.strip().replace('"','')
if filename:
filenames.append(filename)
except FileNotFoundError:
print(f"Error: File not found at path: {filepath}")
except Exception as e:
print(f"An error occurred: {e}")
return filenames
def save_pdfs(files_list,export_folder):
excel = client.Dispatch("Excel.Application")
excel.Application.DisplayAlerts = False
for line_item, filename in enumerate(files_list, start=1):
print(line_item, f'{filename}')
try:
wb = excel.Workbooks.Open(filename, ReadOnly=True)
work_sheets = wb.Worksheets[0]
if len(str(line_item)) == 1:
work_sheets.ExportAsFixedFormat(0, f'{export_folder}\\0{line_item}.pdf')
else:
work_sheets.ExportAsFixedFormat(0, f'{export_folder}\\{line_item}.pdf')
except Exception as e:
print(f"An error occurred: {e}")
finally:
wb.Close(False)
excel.Application.DisplayAlerts = True
excel.Quit()
messagebox.showinfo(title='Seleect File', message= 'Please select text file with listed file paths.')
file_path = filedialog.askopenfilename()
files_list = read_filenames(file_path)
messagebox.showinfo(title='Seleect Folder', message= 'Please select folder to save output files.')
export_folder = filedialog.askdirectory()
save_pdfs(files_list, export_folder)
if messagebox.askyesno(title="Merge?",message="Do you want to merge the PDFs?"):
pdf_merge(export_folder)
< /code>
Для целей тестирования содержимое текстового файла выглядит следующим образом: < /p>
"C:\Python Scripts\Test Files\Test File 1.xlsx"
"C:\Python Scripts\Test Files\Test File 2.xlsx"
"C:\Python Scripts\Test Files\Test File 3.xlsx"
"C:\Python Scripts\Test Files\Test File 4.xlsx"
Но на практике будет список путей файлов в разных каталогах в сети.>
Я пытаюсь запустить сценарий, который считывает файл TXT, который содержит список путей файла для Excel, и сохранить каждый в качестве PDF в указанном каталоге. Я могу заставить его прочитать файл TXT и проанализировать список путей файла без проблем, но он сталкивается с ошибкой, когда он пытается сохранить файл как PDF.[code]def save_pdfs(files_list,export_folder): for line_item, filename in enumerate(files_list, start=1): excel = client.Dispatch("Excel.Application") excel.Application.DisplayAlerts = False print(line_item, f'{filename}') try: wb = excel.Workbooks.Open(filename, ReadOnly=True) work_sheets = wb.Worksheets[0] if len(str(line_item)) == 1: work_sheets.ExportAsFixedFormat(0, f'{export_folder}\\0{line_item}') else: work_sheets.ExportAsFixedFormat(0, f'{export_folder}\\{line_item}') except Exception as e: print(f"An error occurred: {e}") finally: wb.Close(False) excel.Application.DisplayAlerts = True excel.Quit() < /code> И всякий раз, когда я запускаю это, я получаю следующую ошибку для каждого из файлов: < /p> An error occurred: (-2147352567, 'Exception occurred.', (0, 'Microsoft Excel', 'Document not saved. The document may be open, or an error may have been encountered when saving.', 'xlmain11.chm', 0, -2146827284), None) < /code> У меня нет Excel, запущенного, когда я запускаю скрипт, и я проверял сами файлы, и никто больше не открыт файл. Если кто -то еще столкнулся с подобной ситуацией, пожалуйста, дайте мне знать, что вы сделали, чтобы исправить ее. Я заполнил свой тестовый файл, выбрав файлы, щелкнув правой кнопкой мыши и выбрав «копию в качестве пути» и вставая в текстовый файл.from win32com import client from tkinter import filedialog, messagebox from pypdf import PdfWriter import glob
def pdf_merge(directory): merger = PdfWriter() pdf_file_list = glob.glob(f'{directory}\\*.pdf') for pdf in pdf_file_list: merger.append(pdf) merger.write(f'{directory}\\Merged.pdf') merger.close()
def read_filenames(filepath): filenames = [] try: with open(filepath, 'r') as file: for line in file: filename = line.strip().replace('"','') if filename: filenames.append(filename) except FileNotFoundError: print(f"Error: File not found at path: {filepath}") except Exception as e: print(f"An error occurred: {e}") return filenames
messagebox.showinfo(title='Seleect File', message= 'Please select text file with listed file paths.') file_path = filedialog.askopenfilename() files_list = read_filenames(file_path) messagebox.showinfo(title='Seleect Folder', message= 'Please select folder to save output files.') export_folder = filedialog.askdirectory() save_pdfs(files_list, export_folder) if messagebox.askyesno(title="Merge?",message="Do you want to merge the PDFs?"): pdf_merge(export_folder)
< /code> Для целей тестирования содержимое текстового файла выглядит следующим образом: < /p> "C:\Python Scripts\Test Files\Test File 1.xlsx" "C:\Python Scripts\Test Files\Test File 2.xlsx" "C:\Python Scripts\Test Files\Test File 3.xlsx" "C:\Python Scripts\Test Files\Test File 4.xlsx" [/code] Но на практике будет список путей файлов в разных каталогах в сети.>
Я пытаюсь запустить сценарий, который считывает файл TXT, который содержит список путей файла для Excel, и сохранить каждый в качестве PDF в указанном каталоге. Я могу заставить его прочитать файл TXT и проанализировать список путей файла без...
Я работаю над созданием некоторых сценариев для нашей команды, чтобы использовать некоторые новые этикетки чувствительности, которые были недавно реализованы. В конечном итоге мне нужен сценарий, который получит текущую классификацию, и сценарий,...