Posted at

Pythonでシェルコマンド実行


subprocessを使う


  • 下記で ' ls -l 'が実行できます。

import subprocess

cmd = 'ls -l'
print(subprocess.check_call(cmd.split()))


他の例


  • mv とかで 「引数リストが多すぎます」のエラーが出た時の対処


    • xargsを使えばシェルで対応できるけど、シェルに慣れてない人はこっちの書き方のほうがわかりやすいはず...



import os

import subprocess

d = os.listdir('./dir')

for dd in d:
cmd = 'mv ./dir/' + dd + ' ./dir_new/'
subprocess.check_call(cmd.split())