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

时间:2018-09-15 09:08:45

标签: ipython jupyter-notebook sh google-colaboratory

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

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

1)

  

导入操作系统   os.system('驱动器/DL/denet-master/examples/simple-cifar10.sh')   32256

2)

  

导入子过程   subprocess.call('驱动器/DL/denet-master/examples/simple-cifar10.sh')   OSError:[Errno 8]执行格式错误:“ drive / DL / denet-master / examples / simple-cifar10.sh”

4 个答案:

答案 0 :(得分:2)

在Colab中,您可以使用!%%shell调用Shell命令。

您上面的调用将是:

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

这是一个示例笔记本:

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

答案 1 :(得分:1)

选项 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

它应该是这样的

enter image description here

答案 2 :(得分:0)

!bash驱动器/DL/denet-master/examples/simple-cifar10.sh

答案 3 :(得分:0)

这是方法

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

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

然后从文件中读取输出

import os
with open("file.txt","r") as file:
    print(file.read())