调用os.system时出现“意外的缩进”
这是个很简单的问题(可能吧),但因为我刚接触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
来检查一下。