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

1 投票
1 回答
2475 浏览
提问于 2025-04-16 17:53

这是个很简单的问题(可能吧),但因为我刚接触Python,所以对os.system的用法不是很确定。

基本上,我有一个循环(多亏了Stack Overflow的帮助),它会遍历我所有的目录,并运行一些脚本(大约有120个不同的脚本)。

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 来检查一下。

撰写回答