【问题标题】:Using bash to run python script使用 bash 运行 python 脚本
【发布时间】:2018-03-14 21:47:43
【问题描述】:

我有一个 python 脚本,它接收一个 .txt 文件并输出一个 .txt 文件。我想创建一个 bash 文件,我可以从我的桌面单击它来执行 python 脚本。

到目前为止我有:

#!/bin/bash
cd /Desktop; 
cd ./py-data;
python ./grab.py;
exit;

这只是打开了 python 脚本。理想情况下,我想单击 bash 脚本并让 python 脚本在后台运行,只生成输出而无需打开 python 脚本。

解决方案:

  1. 将 py.bat 更改为 py.command

  2. 在终端:

    $ cd ~/Desktop $ chmod 755 py.command

  3. 在 vim 上打开代码并放入(来自:./configure : /bin/sh^M : bad interpreter):

    :set fileformat=unix

  4. 代码也改了:

    #!bin/bash cd ~/Desktop python search.py exit;

【问题讨论】:

  • 如果你从命令行终端运行脚本?
  • 我希望它是一个可以从桌面单击的文件,以便不懂编程的其他人可以运行 python 脚本
  • 您能否编辑您的问题并在您的 bash 脚本中包含文件权限ls -l
  • 实际解决方案取决于您的操作系统。对于 Linux,您可以创建一个以您的脚本为目标的 .desktop 文件。或者您可以使脚本可执行(chmod +x filename) 并设置您的文件管理器以在单击时执行所选类型的文件
  • AFAIK,对此没有跨平台解决方案。您将需要分别处理每个平台。另外,大多数 PC 都没有 bash。

标签: python bash python-2.7 shell


【解决方案1】:

在 MacOS 上,将脚本文件的名称设置为以 .command 结尾,并使文件可执行。使用该文件扩展名,您可以双击该文件,它将运行Terminal 应用程序,任何输出(到stdout / stderr)都将显示在弹出的终端窗口中执行。

=== /Users/john/Desktop/foo.command ===
#!/bin/bash
echo 'hello'

然后:

===  At command prompt===
$ cd ~/Desktop
$ chmod 755 foo.command

双击foo.command会弹出窗口:

Last login: Thu Oct 5
/Users/john/Desktop/foo.command ; exit;
iMac:~/Desktop john$ /Users/john/Desktop/foo.command ; exit;
hello
logout
[Process completed]

在弹出窗口中,您会看到很多行,以及您的输出(“hello”)。

在您的特定示例中,我认为您有两个问题:

首先,您提到/Desktop,这可能不是您想要的,因为用户的桌面是~/Desktop。这会导致您的脚本失败。

其次,您将在弹出窗口中看到的输出是您的脚本直接写入标准输出的输出。如果您的脚本正在写入另一个文件,它可能工作得很好,但您不会在弹出窗口中看到 那个 信息(它将在您写入的任何文件中。)所以这取决于你的grab.py 文件实际上做了什么。

最后,你说“在后台运行”。从技术上讲,这不是正在发生的事情,因为它将在单独的前台进程中运行。我想这就是你的意思。

【讨论】:

【解决方案2】:

您可以在 bash 脚本上尝试 chmod 777,然后删除扩展名。如果您使用的是 macOS,那么它应该可以工作。不太了解 Linux,但值得一试。

【讨论】:

    【解决方案3】:
    chmod +x *filename*
    

    在终端执行上面的命令然后制作bash文件如下

    cd Desktop/*folder*/
    python3 *filename.py*
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-05
      • 2017-01-11
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2021-11-30
      相关资源
      最近更新 更多