仅列出子进程ls -l中的文件和目录名称

MP Mathugama

在使用Popen或check_output的python子进程中,我需要列出给定源目录中的文件和目录。但是我只能使用命令ls -l

样例代码

cmd = ["ls", "-l", source]
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
stdout, stderr = proc.communicate()
exitcode = proc.returncode

if exitcode != 0:
    raise SystemError("Exitcode '{}', stderr: '{}', stdout: '{}'  for command: '{}'".format(
        exitcode, stderr, stdout, cmd))

proc上面,通过使用grep或任何其他方式,我能否仅获取源目录中的文件和目录名称列表而没有其他信息?

尼哈尔·桑杰斯(Nihal Sangeeth)

如果您坚持使用子流程,请尝试:

[x.split(' ')[-1] for x in stdout.decode().split('\n')[1:-1]]

显然,这是一种非常“ hacky”的方式。相反,我可以建议标准库全局

import glob
glob.glob(source + '/*')

返回源中所有文件/目录名称的列表。

编辑:

cmd = ["ls", source]
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
stdout, stderr = proc.communicate()
exitcode = proc.returncode
stdout.decode("utf-8").split('\n')[:-1]

也应该这样做。-l这里没有选项。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

仅列出Linux中的数字目录名称

列出子目录中的所有文件,按子目录名称排序

在Bash中仅使用ls列出目录?

bash complete:从已定义的目录中列出目录名称?

如何仅获取特定文件的父目录名称

将子文件夹添加到目录名称中包含标点符号的多个目录中

在批处理脚本中取消列出目录名称

如何仅使用 ls 命令获取目录名称?

将子文件夹添加到具有通配符目录名称的文件夹中

列出目录并获取目录名称

ZSH:`ls *(。)`仅列出常规文件,但是`ls *(/)`不仅列出目录

仅列出hg清单中的工作目录文件和目录?

列出符号链接的目录名称

C-忽略子目录名称,仅打印文件名称

仅列出目录中的文件?

仅列出目录中的文件

仅显示目录名称

脚本命令获取目录名称的替代方法(使用ls和awk)

如何在* N * X中列出目录名称而不列出其内容?

交换文件和目录名称

在Windows CMD提示中仅显示当前目录名称(而不是完整路径)

如何在Shell前缀中仅显示工作目录名称?

如何使用`ls`分组并仅显示目录名称的第一个单词?

通过在__init__.py中导入子包来跳过导入路径中的目录名称

无法在python中调用子进程“ ls -l文件夹| wc -l”

Python-将根目录名称与所有子文件夹名称连接在一起

如何列出不带目录的文件并按名称过滤(ls选项)

可以将“ ls”设置为仅列出前X个文件/目录吗?

ls -l列出目录列表