我正在尝试获取所有文件的列表,并在键值对中设置了修改时间。
我试图通过使用subprocess.check_output(“ ls -lh | grep -v'^ d'| awk'{print $ 9,$ 8}'”,shell = True)存储输出,但由于它正在返回我无法将其转换为字典。
text = subprocess.check_output("ls -lh | grep -v '^d' | awk '{print $9,$8}'", shell=True)
答案 0 :(得分:1)
首先在输出上调用.decode()
,以便使用字符串。然后,您将不得不做一些strip
和split
魔术来构造字典:
import subprocess
output = subprocess.check_output("ls -lh | grep -v '^d' | awk '{print $9,$8}'", shell=True).decode()
d = {}
for line in output.split('\n'):
line = line.strip()
if line:
file_name, mod_time = line.split()
d[file_name] = mod_time
print(d)
答案 1 :(得分:0)
使用.decode()
方法将字节转换为字符串。如:
text = subprocess.check_output("ls -lh | grep -v '^d' | awk '{print $9,$8}'", shell=True).decode('utf-8')
我想您会在这里处理其余的事情吗?