【发布时间】:2012-08-09 04:20:54
【问题描述】:
我有一个可执行文件。它有一个函数,我想将其结果返回到命令行,但是,我不断收到 NameError 消息。为了分解,我使用的是 LinuxMint Lisa,到目前为止我有:
#! /usr/bin/env python
import mechanize
from BeautifulSoup import BeautifulSoup
import sys
def dictionary(word):
br = mechanize.Browser()
response = br.open('http://www.dictionary.reference.com')
br.select_form(nr=0)
br.form['q'] = word
br.submit()
definition = BeautifulSoup(br.response().read())
trans = definition.findAll('td',{'class':'td3n2'})
fin = [i.text for i in trans]
query = {}
for i in fin:
query[fin.index(i)] = i
return query
print dictionary(sys.argv)
然后我从我的终端 chmod:
sudo chmod +x this_file.py
当我从命令行调用这个文件时,我会输入:
./this_file.py 'pass'(or any other string argument)
哪个会返回:
TypeError: Must assign a string
所以我知道我显然没有正确使用 sys.argv,但是,当我尝试将此函数结果返回到命令行时,我感觉好像在搞砸别的东西。
【问题讨论】:
-
in
print dictionary(agrv)argv 拼写错误。另外,使用sys.argv -
最好提供完整的回溯,以便为错误消息提供一些上下文 - 尤其是有关发生错误的行号的信息。
-
另外,您可能会考虑发布一个不同的问题,而不是“发展”这个问题。只是一个想法。
标签: python linux arguments command-line-arguments