【发布时间】:2011-04-22 15:01:52
【问题描述】:
我正在使用ls -a 命令获取目录中的文件名,但输出在一行中。
像这样:
. .. .bash_history .ssh updater_error_log.txt
我需要一个内置的替代方法来获取文件名,每个文件名都在一个新行上,如下所示:
.
..
.bash_history
.ssh
updater_error_log.txt
【问题讨论】:
-
ls 旨在显示供人类消费的列表。如果您将 ls 用于任何其他目的(例如,获取要迭代的脚本中的文件列表),那么您肯定使用了错误的工具。
-
@juliano - 它实际上是由 python 脚本使用的。为什么你称它为错误的工具?
-
@fixxer 当您将
ls传送到python 时,ls将按照我在回答中的说明每行输出一个文件。 -
@fixxxer:那你确实是用错了。它格式化列表以在用户终端中输出。它可能会替换文件名中的特殊字符,它可能会省略具有特殊含义的字符,等等......换句话说,ls formats 给用户一个列表。您需要未格式化的文件名。您没有使用 python 'glob' 模块的任何特殊原因? docs.python.org/library/glob.html还有'fnmatch'、'dircache'等。
-
@fixxer 你真的让
ls输出到python并观察到python中的单行输出吗?