我需要帮助来理解为什么我不能遍历存储在变量中的ls -ltcrd输出:
def test():
tmplist = os.system('ls -ltcrd /tmp/*')
tmplist.split(' ')[:1] #trying to grab the last column here
print test()
我要使用上面的python代码做的事与在shell中等效:
ls -ltcrd /tmp/* | awk '{print $NF}'
请注意,输出包含/ tmp下所有文件的绝对路径。
理想情况下,我想避免调用任何外部实用程序。但是,如上所示运行它似乎是获得我想要的最简单的方法。
甚至不确定“迭代”是否是用于描述这一点的正确术语。
答案 0 :(得分:2)
尝试这样的事情...
import subprocess
import os
# use the subprocess module to get the output of the command
def test(path):
tmplist = subprocess.check_output(['ls', '-ltcrd', path])
return tmplist.split()[-1:][0]
# get every filename under /tmp/
files = os.listdir('/tmp/')
# iterate over every filename, and run 'test'
for file in files:
x = test('/tmp/' + file)
print(x)