Я работаю над своим научным выставочным проектом столько, сколько могу, но крайний срок приближается. Я просто выполняю эту действительно повторяющуюся задачу внутри программы с тысячами астрономических c изображений.
Существует ли универсальный способ автоматизации программных задач с помощью Python? Я создал нечто похожее на это в прошлом (код ниже). Эта программа в основном только что сказала программе (SAOIMAGEDS9) открывать файлы из указанной c папки и сохранять их как определенный c тип файла в новой папке.
import os
import subprocess
import tkinter as tk
root = tk.Tk()
canvas1 = tk.Canvas(root, width = 700, height = 700,)
canvas1.pack()
target_directory = 'C:/dir/' # change this as required
target_write_directory = 'C:/dir/'
def begin_conversion(): #function first conversion
zipped_files = [x for x in os.listdir(target_directory)if x.lower().endswith('.fits.fz')]
for filename in zipped_files:
print(os.path.abspath(filename))
subprocess.call([r'C:/SAOImageDS9/ds9.exe', os.path.abspath(filename), '-savefits', os.path.abspath(target_write_directory + filename[:-3]), '-exit'])
createBatButton = tk.Button (root, text = ' convert ', command = begin_conversion)
canvas1.create_window(350,320, window = convert)
root.mainloop()
Поэтому я использую tkinter для GUI в программе выше, чтобы я мог оставить ее открытой и нажимать кнопку всякий раз, когда мне это нужно. Я не хочу использовать tkinter в этот раз, так как мне подойти к этой новой задаче на windows машине?
Ниже приведено то, что у меня есть
import os
import subprocess
target_directory = 'C:/read_directory/' # change this as required make sure to leave a / at the end.
target_write_directory = 'C:/write_directory/' # also change this as needed and leave a / at the end.
def automateProcess(): #Execute the astrometrica commands.
targetFiles = [x for x in os.listdir(target_directory)if x.lower().endswith('.fits')]
for filename in targetFiles:
subprocess.call([r'C:/Astrometrica.exe', os.path.abspath(filename), '-load','-', '-savefits', os.path.abspath(target_write_directory + filename[:-3]), '-exit'])
automateProcess()
root.mainloop()
Вместо -savefits и -exit Мне нужно выполнить множество очень специфических и утомительных задач в рамках программы "Astrometrica"