Tengo un simple script en Python, así:Pasar una cadena de múltiples líneas como argumento para una secuencia de comandos en Windows
import sys
lines = sys.argv[1]
for line in lines.splitlines():
print line
quiero llamarlo desde la línea de comandos (o un archivo .bat), pero el primer argumento puede (y probablemente será) una cadena con múltiples líneas. ¿Cómo hace uno esto?
Por supuesto, esto funciona:
import sys
lines = """This is a string
It has multiple lines
there are three total"""
for line in lines.splitlines():
print line
Pero tengo que ser capaz de procesar una línea de línea por argumento.
EDITAR: Esto es probablemente más un problema de línea de comandos de Windows que un problema de Python.
EDIT 2: Gracias por todas las buenas sugerencias. No parece que sea posible. No puedo usar otro intérprete de órdenes porque estoy intentando invocar el guión desde otro programa que parece usar la línea de comandos de Windows detrás de escena.
No entiendo - ¿lo que tienes ahora no funciona? –
Debe dividir por "\ n" de antemano y eliminar la "\ r" de antemano para una mejor compatibilidad de la plataforma. ¿'Bash' put carraige regresa en sus argumentos? (No es seguro). –
No debe usar el módulo de cadena en absoluto. Esa línea debería leer 'lines = multiline.splitlines()' –