python:我在mac或终端上使用IDLE在我的Mac上尝试这个时出错

时间:2016-10-15 18:43:53

标签: python macos

我希望看到一些信息,并在我的教程中获取有关我的os与python的信息,但实际上无法运行此代码:

import os
F = os.popen('dir') 

和此:

F.readline()
' Volume in drive C has no label.\n'
F = os.popen('dir')               # Read by sized blocks
F.read(50)
' Volume in drive C has no label.\n Volume Serial Nu'

os.popen('dir').readlines()[0]    # Read all lines: index
' Volume in drive C has no label.\n'
os.popen('dir').read()[:50]       # Read all at once: slice
' Volume in drive C has no label.\n Volume Serial Nu'

for line in os.popen('dir'):      # File line iterator loop
...     print(line.rstrip())

这是第一个终端上的错误,(在IDLE上只返回'

f =开启(' dir')    Traceback(最近一次调用最后一次):    文件"",第1行,in    FileNotFoundError:[Errno 2]没有这样的文件或目录:' dir'

我知道在mac上它应该是不同的但是如何?得到相同的结果 使用macOS sierra。

3 个答案:

答案 0 :(得分:0)

您所遵循的代码看起来就像是为Windows编写的。 popen运行命令 - 但Mac上没有dir命令。 DOS中的dir显示目录(文件夹)中的文件; Mac上的等效命令是ls

答案 1 :(得分:0)

openos.popen 完全不同 *

第一个只打开一个文件(默认情况下用于读取),但第二个在shell中运行命令并使您能够与它通信(例如获取输出)。

因此,假设只提供文件名时open打开文件进行读取,如果这样的文件不存在,则会引发错误,这就是这里的情况。

os.popen在您的计算机上执行给定的命令,就像您在终端中键入命令一样。

*存在另一个具有相似名称的函数:os.open,它再次来自前面提到的different

答案 2 :(得分:0)

os.popen执行程序并返回类似文件的对象以读取程序输出。因此,os.popen('dir')运行dir命令(列出有关硬盘的信息)并为您提供结果。 open会在您的硬盘上打开一个文件进行阅读。

您的问题是没有名为dir的文件。您可能希望f = os.popen(目录) MAC与Windows不同,基本目录列表命令为ls。但是大多数unixy系统都有一个dir命令,它以不同的格式列出文件,所以它应该适合你。