哎 我又来了 就是这个代码可以运行 但是还是会出错
import osx = 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
{:10_266:}
这是咋回事啊
本帖最后由 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) 赋值给一个 变量,随取随用 这一句
for i in os.listdir(os.chdir):
改为
for i in os.listdir(os . getcwd()):
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) Daniel_Zhang 发表于 2020-12-31 22:57
据我所知,os.chdir() 是不会返回的
for i in os.listdir(os.chdir): 改成for i in os.listdir(x):
大佬我改了一下 但是运行之后吧出现了 拒绝访问的 错误提示 这是因为啥呀 本帖最后由 Daniel_Zhang 于 2021-1-1 15:58 编辑
pretty22 发表于 2021-1-1 13:59
大佬我改了一下 但是运行之后吧出现了 拒绝访问的 错误提示 这是因为啥呀
emmmmmmmmm,不应该啊,你之前的代码不都可以访问路径吗?
你print一下看看你chdir的路径是不是正确的
用 print(os.getcwd()) 在 chdir 之后
能放一下你更改后的代码和错误提示上来吗?
还有一种不太可能的情况,你这个是在 macOS 下面的 win 虚拟机里面打的,没有给完全的磁盘访问权限吗?我之前有遇到过,但是感觉也不应该啊。
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: 拒绝访问。: '.'
还请大佬 给点提示{:10_266:} 本帖最后由 Daniel_Zhang 于 2021-1-1 23:48 编辑
你试试看楼上大佬说的, for i in os.listdir(os.getcwd()) 但是我觉得肯定不是这个问题
要不你试试用管理员身份运行?IDLE
你试试百度一下 ’ PermissionError: 拒绝访问。: '.' ‘ 这个,百度上面挺多的啊,感觉你到这一步了,已经不是代码的问题了吧...
或者在 cmd 里面 用 sudo 指令运行,管理员模式
还有一个无关紧要的东西,你 15 行 print(os.getcwd() + i) 中间要加一个斜杠,因为路径末尾没有斜杠,filename开头也没有,不加斜杠就会两个黏在一起
真的,我啥也没改,你的代码是没有问题的,证据如下:
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)
要是还不行,再然后就不知道了。真的,一滴都没有了{:10_266:} Daniel_Zhang 发表于 2021-1-1 23:37
你试试看楼上大佬说的, for i in os.listdir(os.getcwd()) 但是我觉得肯定不是这个问题
要不你试试用管 ...
唉网上那些 也没用
感谢大佬为我解答 这么多{:10_266:}
页:
[1]