Ho scritto uno script bash che sta facendo esattamente quello che voglio fare, ma calciando fuori il seguente errore:Errore di indirizzamento sys.excepthook in script bash
close failed in file object destructor: sys.excepthook is missing lost sys.stderr
Sono completamente perplesso su come affrontare questo. Ecco la sceneggiatura:
#!/bin/bash
usage() { echo "${0##*/} inputfile outputfile"; exit 1; }
(($#==2)) || usage
INPUTFILE="$1"
OUTPUTFILE="$2"
# All that is written between between the 'cat' command and
#+ 'EOF' will be sent to the output file.
cat <<EOF >$OUTPUTFILE
$(date "+Generated on %m/%d/%y at %H:%M:%S")
DATA AUDIT: $1
------------
COLUMN NAMES
------------
$(csvcut -n $INPUTFILE)
---------------------------------------
FIRST TEN ROWS OF FIRST FIVE COLUMNS
---------------------------------------
$(csvcut -c 1,2,3,4,5 $INPUTFILE | head -n 10)
------------
COLUMN STATS
------------
$(csvcut $INPUTFILE | csvstat)
---END AUDIT
EOF
echo "Audited!"
Sono abbastanza nuovo per gli script di shell e molto nuovo per Python. Sarei grato per qualsiasi aiuto.
L'errore deriva dallo script python (csvcut?), Non dallo script di bash. Sarebbe più utile vedere invece il codice relativo al codice: D –
Potrebbe darsi che a csvcut non piaccia la testa, poiché costringe lo stdout del processo a chiudere prematuramente? –
@ Antti, immagino che sia il caso, ma mi chiedo se ci fosse qualcosa che potrei fare nello script per risolvere il problema, dal momento che l'esecuzione dei comandi individualmente sulla riga di comando non genera l'errore. Hai un'idea di come la testa potrebbe essere cambiata per affrontare un possibile problema di stdout? O il codice csvcut sarebbe ancora necessario per questo? E grazie! –