【发布时间】:2019-01-10 05:41:20
【问题描述】:
我正在 Jupyter 笔记本中运行一个 python 脚本,并尝试在一个列表中循环它。但是,命令行变量不会被识别为变量,而是被视为字符串。 This question 和 this question 似乎与我想要的相似,但我没有使用 argparse 的经验,所以不知道从哪里开始。
我的代码:
import got
retailers = ["handle1", "handle2"]
for retailer in retailers:
string = "keyword " + "@"+ retailer
file_name = "keyword_" + retailer
%run Exporter.py --querysearch string --since 2018-01-01 --maxtweets 50 --output file_name
从命令行运行时的样子:
python Exporter.py --querysearch "keyword @retailer" --since 2018-01-01 --maxtweets 50 --output "keyword_retailer"
问题在于脚本 Exporter.py 正在搜索术语“零售商”,而不是我真正想要的,即“关键字 @Retailer”。输出文件也一样,它被保存为“file_name”而不是“keyword_retailer”。
关于如何解决这个问题的任何想法?
如果需要上下文,我使用this package。
编辑:
我已将此添加到我的代码中,但是我收到下面列出的错误。我还附加了模块 Exporter.py,因为我似乎无法修复此错误。
import argparse
import sys
import Exporter
def main(args):
# parse arguments using optparse or argparse or what have you
parser = argparse.ArgumentParser(description="Do something.")
parser.add_argument("--querysearch", type=str, default= 2, required=True)
parser.add_argument("--maxtweets", type=int, default= 4, required=True)
parser.add_argument("--output", type=str, default= 4, required=True)
parser.add_argument("--since", type=int, default= 4, required=True)
if __name__ == '__main__':
import sys
main(sys.argv[1:])
for retailer in retailers:
string = "palm oil " + "@"+ retailer
file_name = "palm_oil_" + retailer
#print string
#print file_name
Exporter.main([string,"2018-01-01", 50, file_name])
错误信息:
UnboundLocalError Traceback (most recent call last)
<ipython-input-35-4731f5aa548f> in <module>()
4 #print string
5 #print file_name
----> 6 Exporter.main([string,"2018-01-01", "50", file_name])
/Users/jamesozden/GetOldTweets-python-master/Exporter.pyc in main(argv)
70 got.manager.TweetManager.getTweets(tweetCriteria, receiveBuffer)
71
---> 72
73 finally:
74 outputFile.close()
UnboundLocalError: local variable 'arg' referenced before assignment
根据另一个问题的答案,我也尝试过使用 {} 来表示变量而不是字符串的这种风格解决方案,但没有成功:
!python training.py --cuda --emsize 1500 --nhid 1500 --dropout {d} --epochs {e}
【问题讨论】:
标签: python-2.7 command-line jupyter-notebook command-line-arguments argparse