startfile" 文件路径应该是字符串、字节或 os.Pathlike,而不是列表

问题描述

我是 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)