首页 文章

尝试调用os.system时出现“意外缩进”

提问于
浏览
1

非常简单的问题(可能),但我想因为我对python的新手我不太确定os.system如何工作 .

基本上我有一个for循环(感谢SO的一些帮助)遍历我的所有目录并运行一个shell脚本(比如120个不同的shell脚本) .

import os

root = '/foo/'

for directory, subdirectories, files in os.walk(root):
  for file in files:
     if os.path.splitext(file)[-1].lower() == '.sh':

基本上我想做的就是这个(如果是在unix中)(忽略IP地址,但每次都会有一个IP地址)sh run.sh 157.111.22.134 >> logfile.txt那么sh remove.sh 157.111.22.134

我试过这样的事

#!/usr/bin/env python

import os

root = "~/users/me"
ip = '157.111.22.134'
for directory, subdirectories, files in os.walk(root):
  for file in files:
     if os.path.splitext(file)[-1].lower() == '.sh':
       os.system('sh ' + os.path.join(directory, file) + ' ' + ip + '>>' ' log.txt')
       os.system('sh ' + 'remove.sh ' + ip)

但它抱怨第二个os.system(说“意外缩进”)

我甚至不确定我是否正确?想法?

1 回答

  • 4

    你混淆了缩进(空格与制表符) . 使用 python -tt 进行验证 .

相关问题