让Python在一行运行脚本

发布于 2025-02-09 23:15:47 字数 777 浏览 0 评论 0原文

我们如何使用Python运行脚本?例如,

from modulefinder import ModuleFinder
finder = ModuleFinder()
finder.run_script("test-script.py")
for name, mod in finder.modules.items():
   print(name)

尝试了这样的一行:

$ python -c 'from modulefinder import ModuleFinder; finder = ModuleFinder(); finder.run_script("/usr/bin/xbacklight"); for name, mod in finder.modules.items(): print(name)'
  File "<string>", line 1
    from modulefinder import ModuleFinder; finder = ModuleFinder(); finder.run_script("/usr/bin/xbacklight"); for name, mod in finder.modules.items(): print(name)
                                                                                                              ^^^
SyntaxError: invalid syntax

如何进行精致工作?谢谢

How can we use python run its script in line ? e.g.

from modulefinder import ModuleFinder
finder = ModuleFinder()
finder.run_script("test-script.py")
for name, mod in finder.modules.items():
   print(name)

Have tried such its one line:

$ python -c 'from modulefinder import ModuleFinder; finder = ModuleFinder(); finder.run_script("/usr/bin/xbacklight"); for name, mod in finder.modules.items(): print(name)'
  File "<string>", line 1
    from modulefinder import ModuleFinder; finder = ModuleFinder(); finder.run_script("/usr/bin/xbacklight"); for name, mod in finder.modules.items(): print(name)
                                                                                                              ^^^
SyntaxError: invalid syntax

How to do it finely working? Thanks before

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

那一片橙海, 2025-02-16 23:15:48

您可以将for-east包裹在列表理解中,以便使用单线指令使其正常工作。

命令变为

python -c 'from modulefinder import ModuleFinder; finder = ModuleFinder(); finder.run_script("/usr/bin/xbacklight"); [print(name) for name, mod in finder.modules.items()]'

You can wrap your for-each inside a list comprehension in order to make it work using a single-line instruction.

The command becomes

python -c 'from modulefinder import ModuleFinder; finder = ModuleFinder(); finder.run_script("/usr/bin/xbacklight"); [print(name) for name, mod in finder.modules.items()]'
峩卟喜欢 2025-02-16 23:15:48

您可以使用此处的文档。输入&lt;&lt; Something后,壳将全部输入输入,直到再次将“某物”看到到STDIN为止。通常,使用“ EOF”。

$ python <<EOF
> from modulefinder import ModuleFinder
> finder = ModuleFinder()
> finder.run_sctript("test-script.py")
> for name, mod in finder.modules.items():
>     print(name)
> EOF

You can use a here-document. Once you've entered <<something, the shell will pipe all input until it sees "something" again to stdin. Commonly, "EOF" is used.

$ python <<EOF
> from modulefinder import ModuleFinder
> finder = ModuleFinder()
> finder.run_sctript("test-script.py")
> for name, mod in finder.modules.items():
>     print(name)
> EOF
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文