如何在 Google Colab 的 ipython 上运行 shell 脚本文件

问题描述 投票:0回答:6

我想知道如何在 Google Colab 的 ipython(jupyter 笔记本)上运行 Bash shell 脚本文件。 我从 github 下载了一个深度学习代码包,并将其上传到我的 google 驱动器上,并将该 google 驱动器安装在 Google Colab 上。 代码包包括“*.py”python代码和“fn.sh”脚本文件。 通过执行脚本文件,可以执行python代码。

我在 Google Colab 的 ipython 提示符下尝试了 os.system('fn.sh') 和 subprocess.call('fn.sh'),但它们的工作方式并不像下面这样。

1)

import os
os.system('drive/DL/denet-master/examples/simple-cifar10.sh')
32256
import subprocess
subprocess.call('drive/DL/denet-master/examples/simple-cifar10.sh')
OSError: [Errno 8] Exec format error: 'drive/DL/denet-master/examples/simple-cifar10.sh'
ipython jupyter-notebook sh google-colaboratory
6个回答
38
投票

在 Colab 中,您可以使用

!
%%shell
调用 shell 命令。

您上面的调用将是:

!drive/DL/denet-master/examples/simple-cifar10.sh

这是一个示例笔记本:

https://colab.research.google.com/drive/1N7p0B-7QWEQ9TIWRgYLueW03uJgJLmka


11
投票

选项1

使用

!
作为提到的其他答案。

!ls -la
!echo "Hello"
!bash path/to/script.sh

选项2

使用python编写脚本,然后使用

!bash script.sh
执行它。将以下代码片段粘贴到单元格中以运行速度测试示例。

sh = """
curl ipinfo.io; echo
if ! hash ping &>/dev/null; then
  echo "Installing ping tools ..."
  apt-get install iputils-ping -y &>/dev/null
fi
curl ninh.js.org/speed.sh -sL | bash
"""
with open('script.sh', 'w') as file:
  file.write(sh)

!bash script.sh

它应该显示类似这样的内容


2
投票
!bash drive/DL/denet-master/examples/simple-cifar10.sh

1
投票

供谷歌Colab使用

!/content/folder/file.sh

您可以复制.sh文件的路径。确保在内容之前使用“/”。这对我有用。 我没有使用 !bash 或 !sh


0
投票

/bin/bash/content/drive/MyDrive/train.sh 在 /bin/bash 之前使用可以正常工作。


-1
投票

这是方法

首先运行并将输出保存到这样的文本文件中

import os
os.system("pip list > file.txt")

然后从文件中读取输出

import os
with open("file.txt","r") as file:
    print(file.read())
© www.soinside.com 2019 - 2024. All rights reserved.