我编写了一个 bash 脚本,它完全按照我想要的方式执行,但排除了以下错误:
close failed in file object destructor: sys.excepthook is missing lost sys.stderr
我完全不知道如何解决这个问题。这是脚本:
#!/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!"
我对 shell 脚本很陌生,对 python 也很陌生。我将不胜感激任何帮助。
当我将 Python 2.6.2 脚本的输出传输到head
命令输入bash
在 Ubuntu 9.04 上。我添加了try
要关闭的块stdout
and stderr
退出脚本之前:
try:
sys.stdout.close()
except:
pass
try:
sys.stderr.close()
except:
pass
我不再看到错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)