我想知道如何在 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'
在 Colab 中,您可以使用
!
或 %%shell
调用 shell 命令。
您上面的调用将是:
!drive/DL/denet-master/examples/simple-cifar10.sh
这是一个示例笔记本:
https://colab.research.google.com/drive/1N7p0B-7QWEQ9TIWRgYLueW03uJgJLmka
使用
!
作为提到的其他答案。
!ls -la
!echo "Hello"
!bash path/to/script.sh
使用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
它应该显示类似这样的内容
!bash drive/DL/denet-master/examples/simple-cifar10.sh
供谷歌Colab使用
!/content/folder/file.sh
您可以复制.sh文件的路径。确保在内容之前使用“/”。这对我有用。 我没有使用 !bash 或 !sh
/bin/bash/content/drive/MyDrive/train.sh 在 /bin/bash 之前使用可以正常工作。
这是方法
首先运行并将输出保存到这样的文本文件中
import os
os.system("pip list > file.txt")
然后从文件中读取输出
import os
with open("file.txt","r") as file:
print(file.read())