python script mehrmals innerhalb eines bash shell scriptes ausführen?
Hallo ich will ein python script mehrmals mit einem Parameter innerhalb einer Schleife in einem bash shell Script ausführen. ich erhalte folgenden Fehlercode:
Traceback (most recent call last):
File "Simple_XML_HLSeven_Converter.py", line 19, in <module>
tree = ET.parse(dir_path+'/'+sys.argv[1])
File "/usr/lib/python3.6/xml/etree/ElementTree.py", line 1196, in parse
tree.parse(source, parser)
File "/usr/lib/python3.6/xml/etree/ElementTree.py", line 586, in parse
source = open(source, "rb")
FileNotFoundError: [Errno 2] No such file or directory: '/opt/test/philips-xml/./test-mdm.mdm\n./test2-mdm.mdm'
das ist mein Quellcode:
#!/bin/bash
list=$(find . -type f -name "*.mdm")
echo "$list"
for var in "$list"
do
python3 Simple_XML_HLSeven_Converter.py "$var"
done
2 Antworten
FileNotFoundError: [Errno 2] No such file or directory: '/opt/test/philips-xml/./test-mdm.mdm \n./test2-mdm.mdm'
Das wird wohl kaum so gewollt sein.
oFS=$IFS
IFS='\n'
for var in list; do
python3 Simple_XML_HLSeven_Converter.py "$var"
done
IFS=$oFS
Alternativ kannst Du auch find direkt für jede gefundene Datei Dein script ausführen lassen, oder \0 als Seperator nutzen, oder ....
FileNotFoundError: [Errno 2] No such file or directory: '/opt/test/philips-xml/ ./test-mdm.mdm\n./test2-mdm.mdm'
Dein Bash Script übergibt die beiden gefundenen Dateien gleichzeitig an dein Python Script.
Versuchs mal so:
#!/bin/bash
list=($(find . -type f -name "*.mdm"))
echo "${list[@]}"
for var in "${list[@]}"
do
python3 Simple_XML_HLSeven_Converter.py "$var"
done