Objetivo: Acción rápida de Automator para convertir una cadena de "04-01-2004" (que representa el 01 de abril de 2004) y devolver un formato de fecha convertido de 2004-04-01.
Me gustaría usar esto en Finder, para resaltar cadenas en nombres de archivo, realizar una acción rápida sobre ellas, y luego hacer que Finder pegue el formato de fecha "convertido".
La acción actual del autómata es:
"Obtener texto especificado" - cadena de "04-01-2003"
Esto se pasa a
Ejecutar Shell script (shell = /usr/local/bin/python3), entrada pasada a stdin, con el siguiente script.
def convert_date_format(input_date):
# Split the input date into components
month, date, year = input_date.split('-')
# Create the new date format
new_date_format = f"{year}-{month}-{date}"
return new_date_format
# Get input from the user
input_date = input("Enter a date in the format 'month-date-year': ")
# Call the conversion function
new_date_format = convert_date_format(input_date)
# Print the result
print("Converted date:", new_date_format)
Cuando se utiliza, la salida es
2003
04-01 (el año y la fecha están separados por un salto de línea)
Si simplemente cambio las variables en la línea 6 de
new_date_format = f"{year}-{month}-{date}
a
new_date_format = f"{date}-{month}-{date}
En su lugar obtengo el comportamiento esperado de 01-04-2003 en una sola línea
La razón por la que elegí preguntarlo en AskDifferent es que si ejecuto el mismo script en un IDE de Python, obtengo una salida de una sola línea consistente con la ordenación, es decir, 2003-04-01 o 01-04-2003.
Es cuando se ejecuta en el Ejecutar Shell script de Automator que el new_date_format = f"{year}-{month}-{date}
devuelve la salida entrecortada en varias líneas.