杨东明 发表于 2021-6-25 17:10:28

请教一下,这个代码错哪了了。。脑子都绕晕了

import os
def test1(path,file_name):
    list1 = os.listdir(path)
    count = len(list1)
    for each in range(count):
      tuple1 = os.path.splitext(path + '\\' + list1)
      if tuple1 != '':
            if list1 == file_name:
                print(path + '\\' + list1)
      else:
            test1(path +'\\'+ list1,file_name)
path = input('请给定待查找初始路径:')
file_name = input('请输入文件名:')
test1(path,file_name)

nahongyan1997 发表于 2021-6-25 17:10:29

本帖最后由 nahongyan1997 于 2021-6-25 17:34 编辑

我给你小改了一下:主要是路径的拼接
import os
def test1(path,file_name):
    list1 = os.listdir(path)
    count = len(list1)
    for each in range(count):
      tuple1 = os.path.splitext(os.path.join(path,list1))   # 拼接路径记得用 os.path.join 函数,血粼粼的教训
      if tuple1 != '':
            if list1 == file_name:
                print(os.path.join(path,list1))
      else:
            test1(os.path.join(path,list1),file_name)
path = input('请给定待查找初始路径:')
file_name = input('请输入文件名:')
test1(path,file_name)


我发现你的代码压根就是错的,我给你都改好了:
import os
def test1(path,file_name):
    list1 = os.listdir(path)
    for each in list1:
      name,format_ = os.path.splitext(each)    # 这里直接splitext就可以
      if format_ != '' and each == file_name:
            print(os.path.join(path,each))
            
path = input('请给定待查找初始路径:')
file_name = input('请输入文件名:')
test1(path,file_name)

杨东明 发表于 2021-6-25 17:11:24

题目是:编写一个程序,用户输入文件名以及开始搜索的路径,搜索该文件是否存在。如遇到文件夹,则进入文件夹继续搜索

报错是:list1 = os.listdir(path)
NotADirectoryError: 目录名称无效。: 'D:\\\\python3\\Lib\\ctypes\\macholib\\fetch_macholib'

fish_nian 发表于 2021-6-25 17:23:18

因为你的路径D:\\\\有问题

杨东明 发表于 2021-6-25 20:20:36

fish_nian 发表于 2021-6-25 17:23
因为你的路径D:\\\\有问题

我是输入的D:\\,不知道为啥报错报的D:\\\\..

杨东明 发表于 2021-6-25 20:21:18

nahongyan1997 发表于 2021-6-25 17:29
我给你小改了一下:主要是路径的拼接




谢谢谢谢大佬{:9_240:}

杨东明 发表于 2021-6-25 20:25:32

nahongyan1997 发表于 2021-6-25 17:10
我给你小改了一下:主要是路径的拼接




改了还是报错。。

杨东明 发表于 2021-6-25 20:26:13

nahongyan1997 发表于 2021-6-25 17:10
我给你小改了一下:主要是路径的拼接




import os


def test1(path, file_name):
    list1 = os.listdir(path)
    for each in list1:
      name, format_ = os.path.splitext(each)# 这里直接splitext就可以
      if format_ != '' and each == file_name:
            print(os.path.join(path, each))
      else:
            test1(os.path.join(path,each),file_name)

path = input('请给定待查找初始路径:')
file_name = input('请输入文件名:')
test1(path, file_name)

杨东明 发表于 2021-6-25 20:27:01

nahongyan1997 发表于 2021-6-25 17:10
我给你小改了一下:主要是路径的拼接




NotADirectoryError: 目录名称无效。: 'D:\\\\python3\\DLLs\\libcrypto-1_1.dll'
报错又变成这个了,这种报错是啥意思。。

nahongyan1997 发表于 2021-6-25 21:18:47

那你的问题到底解决了没有啊

杨东明 发表于 2021-6-25 21:24:48

nahongyan1997 发表于 2021-6-25 21:18
那你的问题到底解决了没有啊

改过来了,解决了{:9_226:}
页: [1]
查看完整版本: 请教一下,这个代码错哪了了。。脑子都绕晕了