的初始目录手术室步行()

2024-09-27 00:22:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用手术室步行()打印出目录及其子目录中的所有文件。我写的是:

def usewalk():
   for root, dirname, filename in os.walk("/"):
       print filename

我不知道该用什么作为目录手术室步行(). 也就是说,我不确定应该在括号中包括什么。我以为如果我使用“/”,它会从文件所在的目录开始,但它会打印出不在其中的文件,例如“['.dbfseventsd”、“.DS_Store”、“.file”、“.file”、“.dbfseventsd”、“.DS_Store”、“.file”、“。热文件.btree','mach_内核']'。在我看来,它是从Python的默认目录开始的?在


Tags: 文件storein目录fordefdsroot
3条回答

正如我之前所正确指出的,/目录是您的系统根目录。在

为了获得一个好的起点,您有几个选择:

  1. 从当前工作目录开始:os.walk(os.getcwd())
  2. 从Python文件所在的位置开始:os.walk(os.path.dirname(__file__))
  3. 从用户的主目录开始:os.walk(os.getenv('HOME'))
  4. 获取目录作为程序/函数的参数。在

我不建议从.开始,因为它可能无法移植到windows(也不会是getenv选项,但对于基于unix的程序来说,这是一个不错的选择)。使用os.getcwd()来实现可移植性和正确性。在

我建议使用#4-因为它将产生最有用和最可预测的代码。在

不,/是文件系统的根目录。使用.当前目录中启动:

def usewalk():
   for root, dirname, filenames in os.walk("."):
       print filename

打印出root以查看正在循环的目录名;以下代码段打印完整的路径名:

^{pr2}$

/是根目录。您可能会将它与./混淆,后者是引用当前目录的常用方法。在

相关问题 更多 >

    热门问题