我有一個可執行文件。它有一個函數,我想將其結果返回給命令行,但是,我一直收到NameError消息。爲了打破下來,我使用LinuxMint Lisa和到目前爲止我有:使用Python的sys.argv將函數結果返回給命令行?
#! /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)
然後我從終端文件模式:
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' – Levon 2012-08-12 20:57:32
最好提供完整的回溯以給出錯誤消息的一些上下文 - 尤其是關於發生錯誤的行號的信息。 – Levon 2012-08-12 21:26:24
此外,你可能會考慮發佈一個不同的問題,而不是「發展」這一個。只是一個想法。 – Levon 2012-08-12 21:29:01