【发布时间】:2013-10-03 19:51:27
【问题描述】:
$ ./a.py b.xml
没关系。 a.py 读取文件并打印一些东西。
a.py 读取参数
# Each argument is a file
args = sys.argv[1:]
# Loop on files
for filename in args :
# Open the file
file = open(filename)
我想通过管道输出到其他脚本。
$ ./a.py b.xml | grep '1)'
这给出了 python 错误。
这也失败了
$ x=$(./a.py b.xml); echo $x...
如何告诉python不要解释shell脚本语法,例如| $() `` ?
错误是
Traceback (most recent call last):
File "./flattenXml.py", line 135, in <module>
process(file, prefix)
File "./flattenXml.py", line 116, in process
linearize(root, prefix + "//" + removeNS(root.tag))
File "./flattenXml.py", line 104, in linearize
linearize(childEl, path + '/' + numberedTag)
File "./flattenXml.py", line 104, in linearize
linearize(childEl, path + '/' + numberedTag)
File "./flattenXml.py", line 104, in linearize
linearize(childEl, path + '/' + numberedTag)
File "./flattenXml.py", line 104, in linearize
linearize(childEl, path + '/' + numberedTag)
File "./flattenXml.py", line 104, in linearize
linearize(childEl, path + '/' + numberedTag)
File "./flattenXml.py", line 104, in linearize
linearize(childEl, path + '/' + numberedTag)
File "./flattenXml.py", line 83, in linearize
print path + "/@" + removeNS(name) + "=" + val
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 106: ordinal not in range(128)
python 脚本来自Python recipes。
【问题讨论】:
-
请发布您看到的确切错误。
-
Python 永远不会看到 shell 语法,shell 对程序透明地处理它。你遇到了什么错误?
-
我们无法通过猜测来修正近似值,我们需要 exact 错误消息。脚本本身对我来说似乎很好。
-
你还没说“失败”是什么意思。上述工作,除了你没有在回声中使用“$x”。
-
请,复制您在控制台中看到的错误并将其粘贴到此处。 “失败”究竟是什么意思?我们需要在您的控制台中打印的错误消息(如果有)。