Python 3.x 连接路径以检查文件是否存在时出错
嘿,我需要帮助来处理模拟数据 我正在构建一个函数来检查给定路径中最高的4位命名文件夹是什么,以及它是否包含名为“shearrate”的文件。这是在路径本身的目录中以及给定路径中未命名为4位数字的每个文件夹中完成的Python 3.x 连接路径以检查文件是否存在时出错,python-3.x,Python 3.x,嘿,我需要帮助来处理模拟数据 我正在构建一个函数来检查给定路径中最高的4位命名文件夹是什么,以及它是否包含名为“shearrate”的文件。这是在路径本身的目录中以及给定路径中未命名为4位数字的每个文件夹中完成的 在我添加检查文件是否存在之前,该函数工作正常 如果您能帮忙,我将不胜感激:) 我得到的错误是: Traceback (most recent call last): File "data_evaluation.py", line 141, in <module>
在我添加检查文件是否存在之前,该函数工作正常 如果您能帮忙,我将不胜感激:) 我得到的错误是:
Traceback (most recent call last):
File "data_evaluation.py", line 141, in <module>
search_files("shearrate", path)
File "data_evaluation.py", line 107, in search_files
folderlist = scan_directory(path, name)
File "data_evaluation.py", line 98, in scan_directory
folderlist.append(os.path.join(path, folder_level_1))
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/posixpath.py", line 94, in join
genericpath._check_arg_types('join', a, *p)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/genericpath.py", line 149, in _check_arg_types
(funcname, s.__class__.__name__)) from None
TypeError: join() argument must be str or bytes, not 'int'
回溯(最近一次呼叫最后一次):
文件“data_evaluation.py”,第141行,在
搜索_文件(“剪切速率”,路径)
搜索文件中第107行的文件“data_evaluation.py”
folderlist=扫描目录(路径、名称)
文件“data_evaluation.py”,第98行,在scan_目录中
追加(os.path.join(路径,文件夹级别1))
文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/posixpath.py”,第94行,在join中
常规路径。检查参数类型('join',a,*p)
文件“/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/genericpath.py”,第149行,在检查参数类型中
(funcname,s._______;类___;名称__;))来自无
TypeError:join()参数必须是str或bytes,而不是“int”
`由于错误指出join不能接受int,所以您需要将输入变量的类型改为str:
folderlist.append(os.path.join(path, str(folder_level_1)))
正如错误指出的那样,join不能接受int,因此您需要将输入变量的类型改为str:
folderlist.append(os.path.join(path, str(folder_level_1)))
从我看到的情况来看,在调用
join
之前,您将文件夹强制转换为int
,这需要string
参数。在错误消息中这样说。我建议您在调用os.path.join
之前打印出变量的值。无论采用哪种方法,回溯到stringstr(folder\u level\u 1)
都会有所帮助。从我看到的情况来看,在调用join
之前,您可以将文件夹强制转换为int
,这需要string
参数。在错误消息中这样说。我建议您在调用os.path.join
之前打印出变量的值。无论采用哪种方法,返回字符串str(文件夹\u级别\u 1)
都会有所帮助。“在我添加检查文件是否存在之前,函数工作正常”-然后会发生什么?我添加了错误。那么,文件夹\u级别\u 1路径中的哪一个可以是整数?我猜它是folder\u level\u 1
,因为它在函数“函数运行正常,直到我添加检查文件是否存在”的开始处被初始化了。然后会发生什么?我添加了错误。那么,path,folder\u level\u 1
中哪一个可以是整数?我猜它是folder\u level\u 1
,因为它在函数的开头被初始化为零