【发布时间】:2019-09-27 04:32:29
【问题描述】:
我有一个脚本可以清除确定路径中的日志。
这个脚本在一个虚拟机上工作,但是当我导出到另一个虚拟机时,这个脚本不起作用。 python的版本是一样的:
[ec2-user@host1 h]$ python3 --version
Python 3.5.1
错误:
Traceback (most recent call last):
File "jenk.py", line 54, in <module>
dicta = dict(path)
File "jenk.py", line 51, in dict
dicto[elem] = { (dirs['Subdir'][elem]['Path']) : (dirs['Subdir'][elem]['Num_Subdir']) }
KeyError: 'Path'
这是代码:
def PathToDict(path):
st = os.lstat(path)
result = {}
if S_ISDIR(st.st_mode):
result['Path'] = path
result['Subdir'] = {
name: PathToDict(path+'/'+name)
for name in os.listdir(path)}
result['Num_Subdir'] = int(len([i for i, j, k in os.walk(path)]))
# result['RealSize'] = subprocess.check_output(['du','-sh', path]).split()[0].decode('utf-8')
else:
result['type'] = 'file'
return result
dirs = PathToDict(path)
#Getting new dict with clean info with name of dir and number of dirs
def dict(path):
dicto = {}
for elem in dirs['Subdir']:
dicto[elem] = { (dirs['Subdir'][elem]['Path']) : (dirs['Subdir'][elem]['Num_Subdir']) }
return dicto
有什么想法吗?可能是模块的问题?
【问题讨论】:
-
你是如何定义 S_ISDIR 方法的?
-
stat.S_ISDIR(mode) 如果模式来自目录,则返回非零值。
标签: python python-3.5