我有一个名为test1.py的脚本,它不在模块中.它只有在脚本本身运行时才能执行的代码.没有函数,类,方法等.我有另一个作为服务运行的脚本.我想从作为服务运行的脚本中调用test1.py.
例如:
print "I am a test"
print "see! I do nothing productive."
Run Code Online (Sandbox Code Playgroud)
# Lots of stuff here
test1.py # do whatever is in test1.py
Run Code Online (Sandbox Code Playgroud)
我知道一种方法是打开文件,读取内容,并基本上评估它.我假设有一个更好的方法来做到这一点.或者至少我希望如此.
我用subprocess模块调用不同的进程.但是,我有一个问题.
在以下代码中:
callProcess = subprocess.Popen(['ls', '-l'], shell=True)
Run Code Online (Sandbox Code Playgroud)
和
callProcess = subprocess.Popen(['ls', '-l']) # without shell
Run Code Online (Sandbox Code Playgroud)
两者都有效.阅读文档后,我开始知道这shell=True意味着通过shell执行代码.这意味着在缺席的情况下,该过程将直接启动.
那么我应该更喜欢我的情况 - 我需要运行一个进程并获得其输出.从shell内部或外部调用它有什么好处.
在 IPython 笔记本中,您可以test.py使用 run magic 执行外部脚本,例如:
%run test.py
Run Code Online (Sandbox Code Playgroud)
有没有办法做相反的事情,即给定一个 IPython 笔记本,通过 python 脚本访问并运行其中的特定单元格?
我正在编写一个脚本来自动打包“自制”python 模块并将其分发到远程机器上。
我正在使用 Pip 并创建了一个 setup.py 文件,但是我必须调用子进程模块来调用“python setup.py sdist”命令。
我已经查看了 distutils.core 中的“run_setup”方法,但我试图避免全部使用 subprocess 模块。(如果我已经在 python 中,我认为打开 shell 来运行 python 命令没有意义......)
有没有办法将 distutils 模块导入我的脚本并将设置信息直接传递给其方法之一并完全避免使用 shell 命令?或任何其他可能对我有帮助的建议
谢谢
我有一个脚本a.py,在执行它时会向用户询问某些查询并以json格式构造输出.使用python子进程,我可以从另一个名为的脚本调用此脚本b.py.一切都按预期工作,除了我无法获得变量的输出?我在Python 3中这样做.
好吧基本上我是Python的新手,但是,我想为我在工作中使用的所有基本工具制作一个简单的菜单系统我的代码到目前为止如下:
import os
def main():
print "Main Menu.\n"
print "1. Ping yourself.\n"
print "2. Ping someone else.\n"
opt = raw_input ("Please enter a number:- ")
if opt == "1":
os.system('ping 127.0.0.1')
if opt == "2":
ip = raw_input ("Please enter IP:- ")
os.system('ping'.ip)
main()
Run Code Online (Sandbox Code Playgroud)
现在,一切都运行良好,但我似乎在这里停留在这一行:
os.system('ping'.ip)
Run Code Online (Sandbox Code Playgroud)
因为我想使用第10行的变量来在命令中使用.希望这是一个简单的解决方案.
谢谢,
罗斯.
这个问题的背景是我正在尝试编写一个程序来协助分析数据.它应该用python3编写,但是它的数据类型通常以python无法读取的格式存储.有一个包来读取这些数据,但它只与python2兼容.为了读取数据,我因此想要编写一个python2脚本来读取文件并将其转换为numpy数组.我想在我的python3程序中阅读.(有问题的包装是axographio 1).
一般来说,我想要的是:
给出一个(python2)脚本
#reading.py
import numpy
x = numpy.random.random(size=10000)
Run Code Online (Sandbox Code Playgroud)
运行一个可以某种方式得到x的(python3)
#analyze.py
import matplotlib.pyplot as plt
#fancyfunction that gets x from reading.py
plt.plot(x)
plt.show()
Run Code Online (Sandbox Code Playgroud)
这里重要的是read.py由python2解释器执行,因为它不能用于python3.
python ×7
subprocess ×4
python-3.x ×2
distutils ×1
ipython ×1
module ×1
packaging ×1
pip ×1
python-2.x ×1