Python glob无法找到文件或返回空列表

f87krz0w  于 2023-02-15  发布在  Python
关注(0)|答案(3)|浏览(343)

我正在尝试这个代码:

import glob
temp_path = glob.glob("/FileStorage/user/final/**/**/sample.json")[-1][5:]

sample = (spark.read.json(f"FileStorage:{temp_path}"))

但是,当我在数据块中运行这个命令时,错误消息是:

IndexError: list index out of range

我尝试打印:glob.glob("/FileStorage/user/final/**/**/sample.json")结果是空列表。

sigwle7e

sigwle7e1#

问题是"/FileStorage/user/final/** /**/sample.json"可能不是您要表达的内容的正确路径名。您可能需要的是:

glob.glob("/FileStorage/user/final/**/sample.json", recursive=True)

您需要删除路径名中的空格并添加recursive=True

lvmkulzt

lvmkulzt2#

import glob

path = r"C:User/FileStorage/user/final/*" # path to directory + '*'
for file in glob.iglob(path, recursive=True):
   print(file)
   #if you want to filter json format file
   if file.endswith(".json"):
       print(file)
nwo49xxi

nwo49xxi3#

我认为问题出在“”上。
1.如果您尝试使用相对路径,则应仅使用一个“”(“/FileStorage/user/final//*/sample.json”)。
1.如果您希望搜索递归/包含隐藏文件,则需要删除第一个'
'后面的空格,并在调用glob时设置recursive=True或include_hidden=True(根据您的需要)。glob(例如:glob.glob("/FileStorage/user/final/**/**/sample.json", include_hidden=True)将返回此路径中的隐藏文件)
如果recursive为true,则模式“”将匹配任何文件以及零个或多个目录、子目录和指向目录的符号链接。如果模式后面跟有os.sep或os.altsep,则文件将不匹配。
如果include_hidden为true,则“
”模式将匹配隐藏目录。
参见此处的文档:https://docs.python.org/3/library/glob.html
编辑:如果此操作不起作用,请验证文件系统中的路径

相关问题