我对python比较陌生,所以我想知道是否可以调用python从交互式python外部读取字符串(或需要执行的代码),类似于exec()在Python中的工作方式。 基本上,我想知道是否有任何方法让Python从命令行或其他方式读取代码,而不是必须将该代码保存在“file.py”或其他类似文件中。 我想避免运行这个:python file.py
,因为我希望避免需要文件名。 我四处寻找解决办法,发现Execute python commands passed as strings in command line using python -c和Python - How do I pass a string into subprocess.Popen (using the stdin argument)?。第一个答案似乎是我想要的,但是我缺乏如何将字符串传递到stdin的知识部门,所以如果有人能够更好地解释该方法(如果它是正确的答案),我将不胜感激。第二个链接是我在查找stdin时发现的,并且看起来很有希望,但是在执行后,我意识到,从我的理解中,我仍然需要某种子进程的文件名。 我打算使用它以便在Jupyter Notebook或任何类似的程序中使用,因此当我运行一个数据单元时,它可以在Python中执行或返回错误消息,但首先要做的是必须了解如何在不需要文件名的情况下引用我想要的语言。感谢您的时间和考虑!如何在不提供文件名的情况下执行python?
回答
它有点不清楚你想要用这个,但这里是你好世界使用命令行选项(-c)而不用管道输入它。这只是运行的字符串,就好像它是在python解释器或脚本中。
python -c "print('hello world')"
如果你真的想从标准,你可以使用这样的运行代码:
echo "for i in range(100):\n\tprint(i)" | python -c "import sys;print('hello world');exec(''.join([item for item in sys.stdin]))"
有更多关于如何在手册页或python documentation使用命令行工具。使用
python -c "my_var = 'my name is john';print(my_var)"
注意
1):
我很感激帮助,但我一直在寻找可以提供多个字符串的答案。我发现在https://stackoverflow.com/questions/10768584/execute-python-commands-passed-as-strings-in-command-line-using-python-c中的方法,但作为第一个反应声明,它不能打印多于一个字符串。 'python -c“x ='hello',print(x)”'似乎不起作用。你知道如何传递python代码到标准输入,显然这是答案,但我不熟悉 –
这将无法正常工作,但python -c“x ='hello'; print(x)”does –
您可以使用以下你分开命令。 2)你需要使用“”和里面输入命令。
- 1. 如何在不执行检出的情况下锁定文件
- 2. 默认情况下如何在python 3下运行.py可执行文件?
- 3. 如何在不执行my_dict = {}的情况下清空Python字典?
- 4. 如何在不执行Python脚本的情况下提取变量?
- 5. 如何在不导致磁盘读取的情况下提供静态文件?
- 6. 如何在不使用文件STDOUT的情况下为php提供STDIN
- 7. 如何在没有构建文件的情况下执行Ant
- 8. OAuth 2 - 如何在不提供权限的情况下登录
- 9. ReactJS - 无法在不提供HTTP文件的情况下运行babel代码
- 10. 如何在没有密码提示的情况下执行mysqldump?
- 11. 如何在没有路径的情况下运行python文件?
- 12. 如何在没有文件名的情况下运行javascript
- 13. 如何在不提交表单的情况下上传文件?
- 14. 在没有STATIC_URL的情况下用Django提供静态文件
- 15. 如何在不执行插件的情况下部署父节点文件
- 16. 如何在没有“/ static”前缀的情况下在Django中提供文件
- 17. 如何在没有XAMPP的情况下在Windows中提供PHP文件?
- 18. 如何在文件不存在的情况下执行某些命令?
- 19. python如何让bash脚本在不可执行的情况下运行?
- 20. PHP在这种情况下提供文件并发性吗?
- 21. 如何在没有控制器的情况下手动提供.cshtml文件?
- 22. 如何在没有单独文件的情况下为程序提供stdin?
- 23. 如何在没有web.config的情况下从Azure公开和提供WOFF文件?
- 24. C++:如何在不传递命令的情况下执行文件?
- 25. 如何在不发布java -jar的情况下执行JAR文件?
- 26. 如何在不破坏它的情况下修改可执行文件?
- 27. 如何在不打开终端的情况下启动可执行文件?
- 28. 如何在不等待结果的情况下执行sh文件?
- 29. 如何在不修改现有html文件的情况下执行javascript函数?
- 30. 需要额外提供数据:如何在不进行AJAX调用的情况下执行此操作?
您可以将代码传送到解释器中。 –
@克劳斯D.你能详细说明一下吗?我已经尝试使用下列代码管道:'def exec_py(code): proc = subprocess.Popen([“python”,'f'],stdin = subprocess.PIPE,stdout = STDOUT,stderr = subprocess.PIPE,shell =假) 值return_code = proc.wait() proc.stdin.write( '代码') 出= proc.stdout.read() ERR = proc.stderr.read() 如果(ERR): 返回(err.decode(“utf-8”)) else: return(out.decode(“utf-8”))'通过在Jupyter中运行单个单元来给出代码,但它又需要一个文件命名为'f',我无法提供。 –
只是...不提供文件名?运行'python'。 – user2357112