问题描述
我是 Python 新手,一直在尝试做一些项目,但我已经坚持了一段时间,希望能得到帮助。
import os
def find_files(filename,search_path):
result = []
for root,dir,files in os.walk(search_path):
if filename in files:
result.append(os.path.join(root,filename))
return result
find = find_files("Among Us.exe","D:")
os.startfile(find)
错误是:
Exception has occurred: TypeError
startfile: filepath should be string,bytes or os.pathLike,not list
解决方法
你的问题很简单:你试图给出一个需要字符串、列表的函数。
要么从列表中选择一个索引,要么让 find_files
返回一个字符串。如果应该有一个索引,选择0
示例
import os
def find_files(filename,search_path):
result = []
for root,dir,files in os.walk(search_path):
if filename in files:
result.append(os.path.join(root,filename))
return result
find = find_files("Among Us.exe","D:")
os.startfile(find[0])
但是我认为这更符合您的要求:
import os
def find_files(filename,search_path):
for root,files in os.walk(search_path):
if filename in files:
return os.path.join(root,filename)
find = find_files("Among Us.exe","D:")
os.startfile(find)