我已尝试过
中的所有内容if __name__ == "__main__":
到
os.system()
我在这里查看了所有其他类似的问题,并阅读官方Python文档。
我无法得到这个
import os
ask1 = raw_input("Create bid? ")
create = "createbid.py %s" % ()
def questions():
if ask1 == "yes":
os.system(create)
if ask1 == "no":
quit()
question()
可靠地运行ceatebid.py文件。我得到它与
一起工作if __name__ == "__main__":
但如果我还想调用另一个脚本怎么办?
我想根据问题的答案来调用不同的脚本。
答案 0 :(得分:3)
我不确定你到底想要做什么,但总的来说你应该可以做这样的事情。
import foo
import bar
ask = raw_input("Do something?")
if ask.lower() in ('yes', 'y'):
foo.do_something()
else:
bar.do_other()
答案 1 :(得分:2)
使用<div class="col-sm-2 col-sm-offset-5" style="background-color:lavender;">ColSize2</div>
的关键是以字符串格式传递shell命令。
如果您想与该脚本进行通信,则可能需要os.system("python createbid.py")
。
请参阅此问题的答案:running bash commands in python
答案 2 :(得分:2)
这可能在这里回答:What is the best way to call a Python script from another Python script?
因此,您需要在createbid.py(和其他脚本)中定义一些方法:
def run()
print 'running'
然后在你的主脚本中,
import createbid
def questions():
if ask1 == "yes":
createbid.run()
if ask1 == "no":
quit()
if __name__ == '__main__':
questions()
答案 3 :(得分:2)
如今,推荐其他流程的方法是使用subprocess
模块。
这样做比较容易。这是将其应用于您的问题的简单方法:
import subprocess
import sys
create = [sys.executable, 'createbid.py']
def question(ans):
if ans == 'yes':
subprocess.call(create)
elif ans == 'no':
quit()
ask1 = raw_input('Create bid? ')
question(ask1)
print('done')
注意:以这种方式执行createbid.py
(或其他一些脚本)时,
__name__ == '__main__'
将True
,与import
版 {"Request": {"TrancheList": {"Tranche": [{"Id": "123","OwnedAmt": "26500000", "Currency": "USD" }, { "Id": "456", "OwnedAmt": "41000000","Currency": "USD"}]},"FxRatesList": {"FxRatesContract": [{"Currency": "CHF","FxRate": "0.97919983706115"},{"Currency": "AUD", "FxRate": "1.2966804979253"},{ "Currency": "USD","FxRate": "1"},{"Currency": "SEK","FxRate": "8.1561012531034"},{"Currency": "NOK", "FxRate": "8.2454981641398"}]},"isExcludeDeals": "true","baseCurrency": "USD"}}
val inputdf = spark.read.json("hdfs://localhost/user/xyz/request.json")
inputdf.printSchema
不同。
答案 4 :(得分:0)
或者,您可以使用exec
(Python2中的语句,Python3中的函数)。
假设您的脚本scriptA
存储在名为scriptA.py
的文件中。然后:
scriptContent = open("scriptA.py", 'r').read()
exec(scriptContent)
这样做的优点是exec
允许您在之前定义变量,并在脚本中使用它们。
因此,如果您在运行脚本之前定义了一些参数,您仍然可以在解决方案中调用它们:
#Main script
param1 = 12
param2 = 23
scriptContent = open("scriptA.py", 'r').read()
exec(scriptContent)
#scriptA.py
print(param1 + param2)
尽管如此,这种方法更像是一种有趣的技巧,根据具体情况,应该有几种方法可以做得更好。
答案 5 :(得分:0)
感谢您的帮助!我结合了几个答案让它发挥作用。
这有效:
import seebid
import createbid
ask1 = raw_input("Create bid? ")
ask2 = raw_input("View bid? ")
create = createbid
see = seebid
def questions():
if ask1.lower() in ('yes', 'y'):
create.createbd()
elif ask1.lower() in ('no', 'n'):
ask2
if ask2.lower() in ('yes', 'y'):
see.seebd()
if __name__ == "__main__":
questions()