【问题标题】:python equivalent of perl's "opendir"python相当于perl的“opendir”
【发布时间】:2018-11-16 11:48:15
【问题描述】:

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

opendir CWD .

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

然后可以将 CWD 用作指向目录的句柄,例如文件操作中的*CWD

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

【问题讨论】:

  • 标签没有通过,这是针对python 2.7的
  • 没有答案?真令人失望:(
  • 你真正的问题是How do I list all files of a directory? 如果不是,请澄清。
  • 你打算怎么用这个手柄?

标签: python python-2.7 perl opendir file-pointer


【解决方案1】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2010-09-30
    • 2011-04-01
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    相关资源
    最近更新 更多