当前位置: 首页 > 知识库问答 >
问题:

os.walk()返回“/”而不是实际的文件夹名

阎建德
2023-03-14

我知道有很多与此相关的问题,但我似乎找不到一个能帮助我解决问题的答案。

我正在使用os.walk()循环浏览主文件夹中的子文件夹,其中包含文件夹和文件。

Main Folder
    Pass Folder
        files.txt
    Fail Folder
        files.txt
    file.txt
    file2.txt

因此,我使用这段代码根据子文件夹名称创建一个新的文本文件。但是,这将返回folder/.txt,这意味着dirs将返回“/”,而files将返回['file.txt','file2.txt']。

for root, dirs, files in os.walk(path):
    for dirs in root:
      new_txt = 'folder%s.txt' % (dirs)

如何修复它,使dirs返回['主文件夹/传递文件夹','主文件夹/失败文件夹']和文件返回每个文件夹中的文件?

共有1个答案

景嘉实
2023-03-14

我最近在我的代码中使用了类似的东西(如果我没记错的话,我也发现是这样)。我的是这样的:

    for (dirpath, subdirs, filelist) in os.walk(folder):
        # join directories in here

从文件中:

Dilpath是一个字符串,目录的路径。Dilname是Dilpath中子目录名称的列表(不包括'.'和'...')。filenames是Dilpath中非目录文件名称的列表。请注意,列表中的名称不包含路径组件。要获得一个完整的路径(以top开头)到一个文件或目录在Dilpath,os.path.join(Dilpath,名称)。

我不确定os.walk()是否完全符合您的期望。我建议使用os.path.join()将目录连接在一起,以获得您想要的内容。

 类似资料:
  • 我正在尝试用Akka / Scala编写一个actor,调用HTTP REST API并将结果发送回调用actor。API 可能会返回结果的集合/向量,必须首先将其转换为内部供应商中性格式,以便将来可以更改供应商,而无需对代码进行太多更改。大多数代码都在工作,但我不知道如何解压缩并发送内部向量。 这是我拥有的代码,它向调用的Actor返回一个。我想返回的是最终操作中创建的实际向量: 主叫演员: 如

  • 问题内容: 我有div元素,其中定义了left和top,没有绝对位置,我想使用jQuery读取left和top值。 使用可以$(“#MyId”).css(“left”)在IE浏览器(IE8)中提供预期的结果,但在Chrome中,它返回“自动”,尽管这些值是以元素样式显式编写的。 注意IE和Chrome之间的区别。 另外,这在jQuery 1.4.2中运行良好,在jQuery 1.4.3及更高版本中

  • 问题内容: 这是我的图式 但是当我: 我得到了,虽然它应该返回 实际上,如果我去查询它,我会得到: 问题答案: 要使用嵌入式子文档(如)中命名的字段,您必须使用显式定义,否则Mongoose会感到困惑:

  • 我想从一个MariaDB数据库获取数据,并通过Maven安装了MariaDB JDBC连接器。下面的代码将数据的参数而不是实际的行/单元格数据添加到组合框中(请参见代码段,第10行)。这就是我要解决的问题。如果重要的话,我的表由1个int和4个varchar组成。 代码段(带行计数):

  • 问题内容: 我需要列出文件夹中包含目录路径的所有文件。我尝试使用,这显然是完美的解决方案。 但是,它还会列出隐藏的文件夹和文件。我希望我的应用程序不列出任何隐藏的文件夹或文件。有没有可以用来使其不产生任何隐藏文件的标志? 跨平台对我而言并不是很重要,如果只适用于linux(。*模式)就可以了 问题答案: 不,没有选择会跳过这些。您需要自己这样做(这很容易): 注意切片分配;递归遍历中列出的子目录。

  • 我试图让2支球队互相比赛。当我说团队1.玩(团队2)时,我称之为;当 i 生成的数字小于 0.5 时,team2 应获胜,如果大于 0.5,则团队 1 应获胜。当团队 1 获胜时,它会正确显示为尼克斯,但当团队 2 获胜时,它会显示内存地址。我怎么能让它正确地说网是赢的,而不是team@78987neu73