鱼C论坛

 找回密码
 立即注册
查看: 1041|回复: 2

python30课第2题 权限错误

[复制链接]
发表于 2020-3-20 17:46:19 | 显示全部楼层 |阅读模式

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

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

x
使用下面这个代码对单个文件夹运行的时候没有问题。
但对整个盘符进行搜索的时候就出现权限错误



请输入你要查找的初始目录:F:
Traceback (most recent call last):
  File "E:\00_坚果云同步文件\00_Personal\00_Python\030\动动手2.py", line 24, in <module>
    search(start_dir,target)
  File "E:\00_坚果云同步文件\00_Personal\00_Python\030\动动手2.py", line 12, in search
    search(each_file,target)
  File "E:\00_坚果云同步文件\00_Personal\00_Python\030\动动手2.py", line 6, in search
    os.chdir(start_dir)
PermissionError: [WinError 5] 拒绝访问。: 'System Volume Information'
>>>

在17年的帖子中找到答案,是因为权限问题。。。
https://fishc.com.cn/thread-90823-1-1.html

但我就是administrator 管理员权限。。还是一样错误。。

求解答。。

PS: 我查找的是我的移动硬盘。。 不知道是不是移动硬盘的权限?

# 定义搜索函数seach
def search(start_dir,target):
    os.chdir(start_dir)
    for each_file in os.listdir():
        ext = os.path.splitext(each_file)[1]
        if ext in target:
            vediolist.append(os.getcwd()+os.sep+each_file)
        if os.path.isdir(each_file):
            search(each_file,target)
            os.chdir(os.pardir)
    

# 导入模块

import os
import os.path

start_dir = input("请输入你要查找的初始目录:")
target = [".avi",".rmvb",".mkv",".mpg",".wmv",".mp4"]
vediolist = []
search(start_dir,target)

f = open("vediolist.txt","w")
f.writelines(vediolist)
f.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-20 17:49:07 | 显示全部楼层
由于有些文件夹 Python 是无权访问的,所以要加 try-except:
# 定义搜索函数seach
def search(start_dir,target):
    try:
        os.chdir(start_dir)
        for each_file in os.listdir():
            ext = os.path.splitext(each_file)[1]
            if ext in target:
                vediolist.append(os.getcwd()+os.sep+each_file)
            if os.path.isdir(each_file):
                search(each_file,target)
                os.chdir(os.pardir)
    except:
        pass
    

# 导入模块

import os
import os.path

start_dir = input("请输入你要查找的初始目录:")
target = [".avi",".rmvb",".mkv",".mpg",".wmv",".mp4"]
vediolist = []
search(start_dir,target)

f = open("vediolist.txt","w")
f.writelines(vediolist)
f.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-22 14:26:22 | 显示全部楼层
本帖最后由 _荟桐_ 于 2020-3-22 14:28 编辑

要用管理员权限运行python
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 06:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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