鱼C论坛

 找回密码
 立即注册
查看: 3650|回复: 8

[已解决]哎 我又来了 就是这个代码可以运行 但是还是会出错

[复制链接]
发表于 2020-12-31 22:22:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import os

x = input("请输入要搜索的初始文件路径:")
y = input("请输入要搜索的文件名:")

def main(x , y):
    os.chdir(x)

    for i in os.listdir(os.chdir):
        if os.path.isdir(i):
            main(i , y)
            os.chdir(os.pardir)
        if i == y:
            print(os.getcwd() + i)


main(x , y)



Traceback (most recent call last):
  File "C:/Users/pp980/Desktop/文件搜索.py", line 18, in <module>
    main(x , y)
  File "C:/Users/pp980/Desktop/文件搜索.py", line 9, in main
    for i in os.listdir(os.chdir):
TypeError: listdir: path should be string, bytes, os.PathLike or None, not builtin_function_or_method


这是咋回事啊
最佳答案
2020-12-31 23:31:24
        这一句
for i in os.listdir(os.chdir):
        改为
for i in os.listdir(os . getcwd()):
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-31 22:57:03 | 显示全部楼层
本帖最后由 Daniel_Zhang 于 2020-12-31 23:02 编辑

据我所知,os.chdir() 是不会返回的

for i in os.listdir(os.chdir): 改成  for i in os.listdir(x):

你的 x 就是文件的路径

另外其实不需要这么麻烦,os下面有一个 walk 方法
os.walk(path) 直接搜索路径,包含子路径,返回一个带有路径下所有文件的 list
将 os.walk(path) 赋值给一个 变量,随取随用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-31 23:31:24 | 显示全部楼层    本楼为最佳答案   
        这一句
for i in os.listdir(os.chdir):
        改为
for i in os.listdir(os . getcwd()):
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-1-1 08:39:25 | 显示全部楼层
import os

x = input("请输入要搜索的初始文件路径:")
y = input("请输入要搜索的文件名:")

def main(x , y):
    os.chdir(x)

    for i in os.listdir():
        if os.path.isdir(i):
            main(i , y)
            os.chdir(os.pardir)
        if i == y:
            print(os.getcwd() +'\\'+ i)


main(x , y)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-1 13:59:20 From FishC Mobile | 显示全部楼层
Daniel_Zhang 发表于 2020-12-31 22:57
据我所知,os.chdir() 是不会返回的

for i in os.listdir(os.chdir): 改成  for i in os.listdir(x):

大佬  我改了一下 但是运行之后吧出现了 拒绝访问的 错误提示 这是因为啥呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-1 15:43:31 | 显示全部楼层
本帖最后由 Daniel_Zhang 于 2021-1-1 15:58 编辑
pretty22 发表于 2021-1-1 13:59
大佬  我改了一下 但是运行之后吧出现了 拒绝访问的 错误提示 这是因为啥呀


emmmmmmmmm,不应该啊,你之前的代码不都可以访问路径吗?
你print一下看看你chdir的路径是不是正确的
用 print(os.getcwd()) 在 chdir 之后

能放一下你更改后的代码和错误提示上来吗?




还有一种不太可能的情况,你这个是在 macOS 下面的 win 虚拟机里面打的,没有给完全的磁盘访问权限吗?我之前有遇到过,但是感觉也不应该啊。


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-1 19:34:50 | 显示全部楼层
Daniel_Zhang 发表于 2021-1-1 15:43
emmmmmmmmm,不应该啊,你之前的代码不都可以访问路径吗?
你print一下看看你chdir的路径是不是正确的 ...

大佬 您看 我怕我自己代码 有问题 我就改的跟鱼老师一样的代码 但是还是有错误   然后我查了这个问题 但是还是没有效果  依旧是这个错误

请输入要搜索的初始文件路径:C:\Users
请输入要搜索的文件名:Running.fbx
Traceback (most recent call last):
  File "C:\Users\pp980\Desktop\文件搜索.py", line 17, in <module>
    main(x , y)
  File "C:\Users\pp980\Desktop\文件搜索.py", line 11, in main
    main(i , y)
  File "C:\Users\pp980\Desktop\文件搜索.py", line 11, in main
    main(i , y)
  File "C:\Users\pp980\Desktop\文件搜索.py", line 9, in main
    for i in os.listdir(os.curdir):
PermissionError: [WinError 5] 拒绝访问。: '.'

还请大佬 给点提示
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-1 23:37:12 | 显示全部楼层
本帖最后由 Daniel_Zhang 于 2021-1-1 23:48 编辑

你试试看楼上大佬说的, for i in os.listdir(os.getcwd()) 但是我觉得肯定不是这个问题

要不你试试用管理员身份运行?IDLE

你试试百度一下 ’     PermissionError: [WinError 5] 拒绝访问。: '.'    ‘ 这个,百度上面挺多的啊,感觉你到这一步了,已经不是代码的问题了吧...

或者在 cmd 里面 用 sudo 指令运行,管理员模式

还有一个无关紧要的东西,你 15 行 print(os.getcwd() + i) 中间要加一个斜杠,因为路径末尾没有斜杠,filename开头也没有,不加斜杠就会两个黏在一起

真的,我啥也没改,你的代码是没有问题的,证据如下:
截屏2021-01-01 23.44.19.png
import os

x = input("请输入要搜索的初始文件路径:")
y = input("请输入要搜索的文件名:")

def main(x , y):
    os.chdir(x)

    for i in os.listdir(os.curdir):
        if os.path.isdir(i):
            main(i , y)
            os.chdir(os.pardir)
        if i == y:
            print(os.getcwd() + '/' + i)


main(x , y)

要是还不行,再然后就不知道了。真的,一滴都没有了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-2 13:02:00 | 显示全部楼层
Daniel_Zhang 发表于 2021-1-1 23:37
你试试看楼上大佬说的, for i in os.listdir(os.getcwd()) 但是我觉得肯定不是这个问题

要不你试试用管 ...

唉  网上那些 也没用
感谢大佬为我解答 这么多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 21:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表