我本质上正在寻找的是一种在 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
的另一个用途是能够保留对索引节点的引用,而不是路径。
scandir 返回的生成器可以像 CWD 一样传递,并且它将保留 CWD 的"类似 inode"的功能。 例如,您可以获取用于scandir
的生成器,然后重命名基础文件夹,并且生成器仍然有效。
但是,它不能"重置"到开头。 AFAICT 这是 perl 唯一能做到的 python 做不到的事情。