在“ls”命令的情况下,它运行时带有和不带前缀“!”。在“cat fileName”的情况下它是相同的,但是当你考虑“wc -l fileName”时它只适用于“!”前缀。
组合cat和wc命令“cat fileName | wc -l”成功执行时没有“!”前缀。
我不明白这个前缀背后的逻辑“!”在ipython中。
提前谢谢你 (我是python编程的新手,如果听起来很愚蠢,请原谅我。)
答案 0 :(得分:0)
IPython尝试使交互式编程尽可能舒适。一些像ls,cd或cat这样的shell内置命令是在unix shell中导航的基本命令。 IPython作为“Python Shell”在功能上提供了相同的便利性。以及彩色输出等功能
!command
用于执行任意shell代码,功能更强大。它可用于运行您可以在普通shell中键入的任何命令,也可以捕获其输出。
将ls
与!ls
进行比较。前者将使用漂亮的颜色打印当前目录中的内容。后者将打印相同的列表,但只是纯文本。
但请注意,您可以使用!command
:
files = !ls
for f in files:
print("I like this file:", f)
将ls
的输出读入python数组files
,您可以在代码中使用它,就像任何其他数组一样。
总结:如果您只想导航,通常使用标准命令(如果可用)。如果您需要捕获输出或运行程序,则必须使用!command
语法。