使用glob()获取自定义目录中的文件列表

4
我正在尝试编写一个程序,当用户输入自己的自定义文件目录时,程序会重命名文件。我还处于非常早期的阶段。这是我第一次使用操作系统和glob命令。下面是我的代码。然而,当我尝试运行它时,结果是一个空列表。我尝试直接在glob命令中输入文件根目录,它可以工作,但结果不是我想要的。希望你们能帮助我。谢谢。
```python import os, glob
#定义函数获取用户输入的文件根目录 def fileDirectory(): fileroot = raw_input("请输文件根目录\n\n")
#使用glob模块返回包含所有文件的列表 filelist = glob.glob(fileroot) print filelist
fileDirectory() ```
1个回答

2

Python是一种敏感于空格的语言,因此您需要确保所有希望出现在函数内部的内容都已经进行了缩进。

Stackoverflow对代码有其自己的缩进要求,这使得难以确定您的代码最初使用了哪种缩进方式。

import os, glob
def fileDirectory():
    #Asks the user for a file root directory
    fileroot = raw_input("Please input the file root directory \n\n")

    #Returns a list with all the files inside the file root directory
    filelist = glob.glob(fileroot)
    print filelist
fileDirectory()

下一步是glob返回一个glob的结果——它不列出目录,这似乎是你尝试做的事情。
你可能想要使用os.listdir或os.walk,或者你实际上应该请求一个glob表达式而不是一个目录。
最后,raw_input可能会给你一些额外的空格,你需要去掉。检查fileroot是什么。
你可能想把你的程序分开,这样你就可以分别调查每个函数了。

嗨,但当我尝试使用list.dir时,会收到一个错误,该错误说:“WindowsError:[Error 123],文件名、目录名或卷标语法不正确:'"/.',我的代码有什么问题吗? - Tom
你给 glob 函数的输入实际上是 "/." 吗?我认为在 Windows 上运行时这可能根本不是一个有效的路径。 - Domingo Ignacio
听起来你实际上正在使用glob - 如果是这样的话,那么你的变量名称和注释是具有误导性的。 - Douglas Leeder
我建议分别尝试各种功能。特别是Python的glob模块类似于Unix扩展,因此C:\ *会获取C:顶层的所有内容(我想是这样的)。 - Douglas Leeder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接