Canopy 获取 shell 中的文件列表
Canopy get list of files in the shell
我正在使用 canopy python。 shell 有命令 "pwd" 和 "cd"。
它甚至会自动完成。
是否有一个命令——不是我必须编写和跟踪的东西——一个只列出目录中文件的内置命令。
我试过 ls, ls(), dir, dir(), directory, directory(), files, files(), filelist, filelist()。
我在他们的文档中搜索了清单文件。它展示了如何在 python 程序中获取文件列表 - 这太棒了。我一直这样做。我不想每次都想列出当前目录的内容。
有内置的 shell 命令吗?
您可以使用 python 内置模块 os 来使用系统方法查询目录。请看下面。
import os
os.system("dir")
更新
请记住,我的解决方案是 OS 特定的(即 ls 与 dir),因此 Jon 的解决方案更可取。
你可以试试
import os
fileList = os.listdir(directory_path)
这样您就可以在 python 程序中获得要操作的文件列表。
如果您想要以 ls
给您的方式获取当前工作目录中的文件列表,您可以这样做。
fileList = os.listdir(os.getcwd())
如果你真的想要一个简短的命令来一遍又一遍地输入你可以写
ls = lambda : os.listdir(os.getcwd())
然后当你输入
时它会运行这个命令
ls()
问题的前提似乎不一致。如果您可以执行 ipython pwd
或 cd
标准魔法命令,那么您应该也可以访问 ipython 标准别名 ls
。如果你不能,那么几乎可以肯定是因为你已经覆盖/隐藏了 ls
别名的含义。
区分 (1) 普通 Python shell(通过在 Canopy 命令提示符下键入 python
打开), 不 在 Canopy 命令提示符中提供 pwd
或 cd
或 'lscommands; and (2) *any* IPython shell, whether the Python panel in the Canopy GUI or an
ipython` 终端, 提供这些,以及许多其他 Ipython "magic" 命令。
(有关 IPython 魔术命令的更多信息,请参阅 http://ipython.readthedocs.io/en/stable/interactive/magics.html;这些是 IPython 版本 6 的文档,但它们与 IPython 版本的大部分相同5,Canopy 使用它来支持 Python 2.7 和 Python 3.5+。)
前两个答案总是正确的,因为它们适用于任何 Python 程序或 shell(取决于 OS)。那是因为他们只使用 Python 标准库。但是,它们与您提到的 cd
和 pwd
命令不同,这些命令特定于 IPython shell(不适用于程序 运行ning IPython shell).
IMO,很少有打开普通 Python shell 的好理由。如果您只想从命令提示符 运行 脚本文件,那么一定要 python myscript.py
。但是如果你想要一个交互式 shell,IPython 提供了很多额外的功能,多年来它一直是 Python shells 的实际标准(这就是为什么它用于 Canopy GUI 的 Python shell).
收到来自 Canopy 支持的回复)。
有一个环境变量 COMSPEC 被设置为:
C:\windows\system32\cmd.exe;
最后那个分号是错的。这是一个目录而不是目录列表。我删除了那个分号,然后 'ls' 命令突然像我记得的那样工作了!
我正在使用 canopy python。 shell 有命令 "pwd" 和 "cd"。 它甚至会自动完成。 是否有一个命令——不是我必须编写和跟踪的东西——一个只列出目录中文件的内置命令。 我试过 ls, ls(), dir, dir(), directory, directory(), files, files(), filelist, filelist()。
我在他们的文档中搜索了清单文件。它展示了如何在 python 程序中获取文件列表 - 这太棒了。我一直这样做。我不想每次都想列出当前目录的内容。
有内置的 shell 命令吗?
您可以使用 python 内置模块 os 来使用系统方法查询目录。请看下面。
import os
os.system("dir")
更新
请记住,我的解决方案是 OS 特定的(即 ls 与 dir),因此 Jon 的解决方案更可取。
你可以试试
import os
fileList = os.listdir(directory_path)
这样您就可以在 python 程序中获得要操作的文件列表。
如果您想要以 ls
给您的方式获取当前工作目录中的文件列表,您可以这样做。
fileList = os.listdir(os.getcwd())
如果你真的想要一个简短的命令来一遍又一遍地输入你可以写
ls = lambda : os.listdir(os.getcwd())
然后当你输入
时它会运行这个命令ls()
问题的前提似乎不一致。如果您可以执行 ipython pwd
或 cd
标准魔法命令,那么您应该也可以访问 ipython 标准别名 ls
。如果你不能,那么几乎可以肯定是因为你已经覆盖/隐藏了 ls
别名的含义。
区分 (1) 普通 Python shell(通过在 Canopy 命令提示符下键入 python
打开), 不 在 Canopy 命令提示符中提供 pwd
或 cd
或 'lscommands; and (2) *any* IPython shell, whether the Python panel in the Canopy GUI or an
ipython` 终端, 提供这些,以及许多其他 Ipython "magic" 命令。
(有关 IPython 魔术命令的更多信息,请参阅 http://ipython.readthedocs.io/en/stable/interactive/magics.html;这些是 IPython 版本 6 的文档,但它们与 IPython 版本的大部分相同5,Canopy 使用它来支持 Python 2.7 和 Python 3.5+。)
前两个答案总是正确的,因为它们适用于任何 Python 程序或 shell(取决于 OS)。那是因为他们只使用 Python 标准库。但是,它们与您提到的 cd
和 pwd
命令不同,这些命令特定于 IPython shell(不适用于程序 运行ning IPython shell).
IMO,很少有打开普通 Python shell 的好理由。如果您只想从命令提示符 运行 脚本文件,那么一定要 python myscript.py
。但是如果你想要一个交互式 shell,IPython 提供了很多额外的功能,多年来它一直是 Python shells 的实际标准(这就是为什么它用于 Canopy GUI 的 Python shell).
收到来自 Canopy 支持的回复)。 有一个环境变量 COMSPEC 被设置为:
C:\windows\system32\cmd.exe;
最后那个分号是错的。这是一个目录而不是目录列表。我删除了那个分号,然后 'ls' 命令突然像我记得的那样工作了!