1

我本质上正在寻找的是一种将句柄返回到 python 中的目录的方法,有点像 perl 如何做这样的事情......

opendir CWD .

见: http: //perldoc.perl.org/5.8.9/functions/opendir.html

然后可以将 CWD 用作指向目录的句柄,就像*CWD在文件操作中一样。

我在 python 中遇到的最接近的是 open() 但它不返回文件描述符/指针并且不适用于目录。

4

1 回答 1

1

scandir函数打开一个句柄并允许您迭代地遍历每个文件。这很有用,原因与以下相同opendir:当可能有大量文件时,它的效率要高得多:

https://docs.python.org/3/library/os.html#os.scandir

的另一个用途opendir是能够保留对 inode 的引用,而不是路径。

scandir 返回的生成器可以像 CWD 一样被传递,它将保留 CWD 的“类似 inode”的功能。例如,您可以获取一个生成器scandir,然后重命名基础文件夹,并且生成器仍然有效。

但是,它不能“重置”到开始。AFAICT 这是 perl 唯一能做的而 python 不能做的事情。

于 2020-05-28T13:49:37.223 回答