Ipython 运行 命令等同于普通 python
Equivalent of Ipython run command in normal python
我正在尝试 运行 使用 spyder 而不是 ipython notebook 的程序,因为它目前 运行 更快。
使用
导入和提取数据
run util/file_reader.py C:/file_address
显然 运行 命令在正常 python 中不起作用,我找不到等效命令,我查看了各种如何替换 ipython 魔术命令在这里和一般情况下进行问答,但我找不到 运行 命令...
是否有一个模块或一组代码可以在正常情况下等效地工作python?
你想要的有点奇怪。准确地说,运行 魔术 运行 是当前 ipython 命名空间中的给定文件,就好像它是 __main__
模块一样。要获得完全相同的效果需要一些努力。
with open("util/file_reader.py") as f:
src = f.read()
# set command line arguments
import sys
sys.argv = ["file_reader.py", "C:/file_address"]
# use "__main__.py" as file name, so module thinks its the main module
code = compile(src, "__main__.py", "exec")
exec(code)
如果在 file_reader.py
中定义一个主函数,然后在 if __name__ == "__main__":
时在文件末尾调用它会更容易和更好
例如
util/file_reader.py
def main(filename):
print(filename)
if __name__ == "__main__":
import sys
main(sys.argv[1])
现在您可以轻松地 运行 通过导入此模块中的代码,然后调用 main
函数。
例如
import util.file_reader
util.file_reader.main("C:/file_address")
我正在尝试 运行 使用 spyder 而不是 ipython notebook 的程序,因为它目前 运行 更快。 使用
导入和提取数据run util/file_reader.py C:/file_address
显然 运行 命令在正常 python 中不起作用,我找不到等效命令,我查看了各种如何替换 ipython 魔术命令在这里和一般情况下进行问答,但我找不到 运行 命令...
是否有一个模块或一组代码可以在正常情况下等效地工作python?
你想要的有点奇怪。准确地说,运行 魔术 运行 是当前 ipython 命名空间中的给定文件,就好像它是 __main__
模块一样。要获得完全相同的效果需要一些努力。
with open("util/file_reader.py") as f:
src = f.read()
# set command line arguments
import sys
sys.argv = ["file_reader.py", "C:/file_address"]
# use "__main__.py" as file name, so module thinks its the main module
code = compile(src, "__main__.py", "exec")
exec(code)
如果在 file_reader.py
中定义一个主函数,然后在 if __name__ == "__main__":
例如
util/file_reader.py
def main(filename):
print(filename)
if __name__ == "__main__":
import sys
main(sys.argv[1])
现在您可以轻松地 运行 通过导入此模块中的代码,然后调用 main
函数。
例如
import util.file_reader
util.file_reader.main("C:/file_address")