我希望看到一些信息,并在我的教程中获取有关我的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。
答案 0 :(得分:0)
您所遵循的代码看起来就像是为Windows编写的。 popen
运行命令 - 但Mac上没有dir
命令。 DOS中的dir
显示目录(文件夹)中的文件; Mac上的等效命令是ls
。
答案 1 :(得分:0)
open
和os.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
命令,它以不同的格式列出文件,所以它应该适合你。