如何在不提供文件名的情况下执行python?

2024-05-08 15:08:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python比较陌生,所以我想知道是否可以调用python从交互式python shell外部读取字符串(或它需要执行的代码),类似于在python中exec()的工作方式。 基本上,我想知道是否有任何方法可以让python从命令行或其他方式读取代码,而不必将代码保存在文件.py'或其他类似文件。 我希望避免运行:python file.py,因为我希望避免需要文件名。 我四处寻找解决方案,发现了Execute python commands passed as strings in command line using python -cPython - How do I pass a string into subprocess.Popen (using the stdin argument)?。第一个答案似乎是我想要的,但我缺乏如何将字符串传递到stdin的知识,因此如果有人能更好地解释这个方法,如果它是正确的答案,我将不胜感激。第二个链接是我在查找stdin时发现的,看起来很有希望,但是在执行时我意识到,根据我的理解,我仍然需要一些子进程的文件名。 我计划使用它,以便在Jupyter Notebook或任何类似的程序中使用,因此当我运行一个数据单元时,它可以在Python中执行或返回错误消息,但首先要做的是,我必须找出如何引用我想要的语言而不需要文件名。感谢您的时间和考虑!你知道吗


Tags: 文件方法字符串答案代码命令行py文件名
2条回答

您可以使用以下选项:

python -c "my_var = 'my name is john';print(my_var)"

注意

1)使用;将命令分开。你知道吗

2)您需要使用“”和inside来键入命令。你知道吗

这有点不清楚你到底想用它做什么,但是这里是helloworld使用命令行中的命令选项(-c),而不是管道。这只是运行传递的字符串,就好像它在python解释器或脚本中一样。你知道吗

python -c "print('hello world')"

如果您真的想从stdin运行代码,您可以使用以下内容:

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中有更多关于如何使用命令行工具的内容。你知道吗

相关问题 更多 >

    热门问题