Canopy获取shell中的文件列表

时间:2017-08-04 18:56:21

标签: python shell canopy

我正在使用冠层python。 shell有命令“pwd”和“cd”。 它甚至可以自动完成。 是否有命令 - 不是我必须编写和跟踪的内容 - 一个内置命令,只列出目录中的文件。 我已经尝试过ls,ls(),dir,dir(),目录,目录(),文件,文件(),文件列表,文件列表()。

我在他们的文档中搜索了列表文件。它展示了如何在python程序中获取文件列表 - 这很棒。我一直这样做。每次我想列出当前目录的内容时,我都不想这样做。

是否有内置的shell命令?

4 个答案:

答案 0 :(得分:3)

你可以尝试

import os
fileList = os.listdir(directory_path)

这样你就可以在python程序中找到要操作的文件列表。

如果您希望当前工作目录中的文件列表采用ls为您提供的方式。

fileList = os.listdir(os.getcwd())

如果你真的想要一个简短的命令来反复输入,你可以写

ls = lambda : os.listdir(os.getcwd())

然后在您键入

时将运行此命令
ls()

答案 1 :(得分:1)

您可以使用内置的python模块os来使用系统方法查询目录。请看下面。

import os
os.system("dir")

<强>更新

请记住,我的解决方案是特定于操作系统的(即ls vs dir),因此Jon的解决方案更可取。

答案 2 :(得分:1)

这个问题的前提似乎不一致。如果您可以执行ipython pwdcd标准魔术命令,那么您还应该能够访问ipython标准别名ls。如果你不能,那几乎可以肯定,因为你已经覆盖/隐藏了ls别名的含义。

区分(1)普通Python shell(通过在Canopy命令提示符下键入python打开)至关重要,提供{{1}在Canopy命令提示符中也没有pwd也没有cd ipython`终端, 提供那些,以及许多其他Ipython&#34;魔法&#34 ;命令。

(有关IPython魔术命令的更多信息,请参阅http://ipython.readthedocs.io/en/stable/interactive/magics.html;这些是IPython版本6的文档,但它们与IPython版本5大致相同,Canopy使用它来支持Python 2.7和Python 3.5 +。)

之前的两个答案总是正确的,因为它们可以在任何Python程序或shell中运行(取决于操作系统)。那是因为他们只使用Python标准库。但是它们与您提到的commands; and (2) *any* IPython shell, whether the Python panel in the Canopy GUI or ancd命令不同,它们特定于IPython shell(而不是在IPython shell中运行的程序)。

IMO,打开普通的Python shell很少有充分的理由。如果您只想从命令提示符运行脚本文件,那么无论如何pwd。但是如果你想要一个交互式shell,IPython提供了许多额外的功能,多年来它一直是Python shell的事实标准(这就是它用于Canopy GUI的Python shell的原因)。

答案 3 :(得分:0)

Got a note back from Canopy Support). There is an environment variable, COMSPEC that was set to:

2017-08-30 20:10:07.709  INFO 5 --- [main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 666 (http)

That semicolon at the end is wrong. This is a single directory and not a list of directories. I removed that semicolon and suddenly the 'ls' command works as I remember!