我本质上正在寻找的是一种将句柄返回到 python 中的目录的方法,有点像 perl 如何做这样的事情......
opendir CWD .
见: http: //perldoc.perl.org/5.8.9/functions/opendir.html
然后可以将 CWD 用作指向目录的句柄,就像*CWD
在文件操作中一样。
我在 python 中遇到的最接近的是 open() 但它不返回文件描述符/指针并且不适用于目录。
我本质上正在寻找的是一种将句柄返回到 python 中的目录的方法,有点像 perl 如何做这样的事情......
opendir CWD .
见: http: //perldoc.perl.org/5.8.9/functions/opendir.html
然后可以将 CWD 用作指向目录的句柄,就像*CWD
在文件操作中一样。
我在 python 中遇到的最接近的是 open() 但它不返回文件描述符/指针并且不适用于目录。
该scandir
函数打开一个句柄并允许您迭代地遍历每个文件。这很有用,原因与以下相同opendir
:当可能有大量文件时,它的效率要高得多:
https://docs.python.org/3/library/os.html#os.scandir
的另一个用途opendir
是能够保留对 inode 的引用,而不是路径。
scandir 返回的生成器可以像 CWD 一样被传递,它将保留 CWD 的“类似 inode”的功能。例如,您可以获取一个生成器scandir
,然后重命名基础文件夹,并且生成器仍然有效。
但是,它不能“重置”到开始。AFAICT 这是 perl 唯一能做的而 python 不能做的事情。