了解python值的迭代

时间:2018-07-21 17:38:01

标签: python

我需要帮助来理解为什么我不能遍历存储在变量中的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下所有文件的绝对路径。

理想情况下,我想避免调用任何外部实用程序。但是,如上所示运行它似乎是获得我想要的最简单的方法。

甚至不确定“迭代”是否是用于描述这一点的正确术语。

1 个答案:

答案 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)