【问题标题】:How to print the names of files from a folder?如何打印文件夹中的文件名?
【发布时间】:2019-03-03 17:11:57
【问题描述】:

我正在尝试打印文件夹目录中所有文件的名称。我有一个名为“a”的文件夹,在该文件夹中有 3 个 NC 文件,我们称它们为“b”、“c”、“d”,我要打印其目录。我该怎么做?

例如,假设我的文件夹路径是

path=r"C:\\Users\\chz08006\\Documents\\Testing\\a"

我想打印文件夹“a”中所有文件的目录,所以结果应该打印出来:

C:\\Users\\chz08006\\Documents\\Testing\\a\\b.nc
C:\\Users\\chz08006\\Documents\\Testing\\a\\c.nc
C:\\Users\\chz08006\\Documents\\Testing\\a\\d.nc

到目前为止,我已经尝试过

for a in path:
   print(os.path.basename(path))

但这似乎不对。

【问题讨论】:

  • “但这似乎不对。” - 为什么?
  • 结果只是打印了多次"a",而不是文件夹a中所有文件的目录。

标签: python path


【解决方案1】:

我想你正在寻找这个:

import os

path = r"C:\\Users\\chz08006\\Documents\\Testing\\a"

for root, dirs, files in os.walk(path):
    for file in files:
        print("{root}\\{file}".format(root=root, file=file))

【讨论】:

    【解决方案2】:

    您可以使用listdir() 获得文件夹中的文件名列表。

    import os
    path = "C:\\Users\\chz08006\\Documents\\Testing\\a"
    l = os.listdir(path)
    for a in l:
       print(path + a)
    

    【讨论】:

      【解决方案3】:

      你犯了几个错误。您使用的是os.path.basename,它只返回最后一个文件分隔符后路径末尾表示的文件或文件夹的名称。

      改为使用os.path.abspath 来获取任何文件的完整路径。

      另一个错误是在循环中使用了错误的变量(print(os.path.basename(path) 而不是使用变量a

      另外,在循环之前不要忘记使用os.listdir 列出文件夹内的文件。

      import os
      path = r"C:\Users\chz08006\Documents\Testing\a"
      for file in os.listdir(path): #using a better name compared to a
         print(os.path.abspath(file)) #you wrote path here, instead of a. 
         #variable names that do not have a meaning 
         #make these kinds of errors easier to make, 
         #and harder to spot
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-06
        • 2017-04-22
        • 1970-01-01
        • 2011-06-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-12
        • 1970-01-01
        相关资源
        最近更新 更多