鱼C论坛

 找回密码
 立即注册
查看: 2939|回复: 13

[已解决]Python 30课第二题,小甲鱼源代码执行出错,不知什么原因

[复制链接]
发表于 2021-5-31 08:36:37 | 显示全部楼层 |阅读模式

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

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

x
import os

def search_file(start_dir, target) :
    os.chdir(start_dir)
    
    for each_file in os.listdir(os.curdir) :
        if each_file == target :
            print(os.getcwd() + os.sep + each_file) # 使用os.sep是程序更标准
        if os.path.isdir(each_file) :
            search_file(each_file, target) # 递归调用
            os.chdir(os.pardir) # 递归调用后切记返回上一层目录

start_dir = input('请输入待查找的初始目录:')
target = input('请输入需要查找的目标文件:')
search_file(start_dir, target)



'''
=========== RESTART: C:/Users/Administrator/Documents/exercise3002.py ==========   #试了两次 都出错,不知识什么原因
请输入待查找的初始目录:C:\\Users
请输入需要查找的目标文件:record.txt
Traceback (most recent call last):
  File "C:/Users/Administrator/Documents/exercise3002.py", line 15, in <module>
    search_file(start_dir, target)
  File "C:/Users/Administrator/Documents/exercise3002.py", line 10, in search_file
    search_file(each_file, target) # 递归调用
  File "C:/Users/Administrator/Documents/exercise3002.py", line 10, in search_file
    search_file(each_file, target) # 递归调用
  File "C:/Users/Administrator/Documents/exercise3002.py", line 10, in search_file
    search_file(each_file, target) # 递归调用
  [Previous line repeated 1 more time]
  File "C:/Users/Administrator/Documents/exercise3002.py", line 6, in search_file
    for each_file in os.listdir(os.curdir) :
PermissionError: [WinError 5] 拒绝访问。: '.'
>>>
=========== RESTART: C:/Users/Administrator/Documents/exercise3002.py ==========
请输入待查找的初始目录:
=========== RESTART: C:/Users/Administrator/Documents/exercise3002.py ==========
请输入待查找的初始目录:c:
请输入需要查找的目标文件:record.txt
Traceback (most recent call last):
  File "C:/Users/Administrator/Documents/exercise3002.py", line 15, in <module>
    search_file(start_dir, target)
  File "C:/Users/Administrator/Documents/exercise3002.py", line 10, in search_file
    search_file(each_file, target) # 递归调用
  File "C:/Users/Administrator/Documents/exercise3002.py", line 6, in search_file
    for each_file in os.listdir(os.curdir) :
PermissionError: [WinError 5] 拒绝访问。: '.'
>>>
'''
最佳答案
2021-6-1 20:31:39
huyanmin 发表于 2021-6-1 17:37
#我对record.txt文件操作如下:

system的权限   允许   拒绝  #允许 下面方框是灰色勾选不了, ...

勾选不了,那问题就不好弄了。。试试能不能分盘吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-5-31 09:27:59 | 显示全部楼层
本帖最后由 Hoiste 于 2021-5-31 09:29 编辑

是把TXT文件放在C盘了吗,如果是这样的话就换个地方吧,C盘用代码跑权限不够的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-31 10:13:39 | 显示全部楼层
Hoiste 发表于 2021-5-31 09:27
是把TXT文件放在C盘了吗,如果是这样的话就换个地方吧,C盘用代码跑权限不够的

我把record.txt
文件放到桌面了,桌面位置是C:\Users\Administrator\Documents,我放到别的位置看一看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-5-31 10:19:30 | 显示全部楼层
我用的是固态硬盘,没有分区,只有一个c盘,那怎么办,电脑还要重新分区吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-31 10:21:24 | 显示全部楼层
huyanmin 发表于 2021-5-31 10:19
我用的是固态硬盘,没有分区,只有一个c盘,那怎么办,电脑还要重新分区吗

那就把TXT文件和.py文件全部右键-属性,然后把权限全勾上试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-1 06:32:11 | 显示全部楼层
Hoiste 发表于 2021-5-31 10:21
那就把TXT文件和.py文件全部右键-属性,然后把权限全勾上试试

麻烦详细说下,都勾选啥,有点乱
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-1 08:51:37 | 显示全部楼层
huyanmin 发表于 2021-6-1 06:32
麻烦详细说下,都勾选啥,有点乱

就是两个文件都右键-属性-安全的那个标签-编辑,然后就能选择下面的system权限,全部勾上允许,然后再试试能不能访问。毕竟只有一个系统盘的话就不能直接拉到其他盘了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-1 09:40:29 | 显示全部楼层
Hoiste 发表于 2021-6-1 08:51
就是两个文件都右键-属性-安全的那个标签-编辑,然后就能选择下面的system权限,全部勾上允许,然后再试 ...

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

使用道具 举报

 楼主| 发表于 2021-6-1 09:45:25 | 显示全部楼层
system 下的选项有两个,一个是允许选项,是灰色不让更改,另一个是拒绝选项,选哪边呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-1 10:44:17 | 显示全部楼层
huyanmin 发表于 2021-6-1 09:45
system 下的选项有两个,一个是允许选项,是灰色不让更改,另一个是拒绝选项,选哪边呢?

system上面一个有个编辑,点下去,权限就能改了,全部允许了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-1 12:37:37 | 显示全部楼层
Hoiste 发表于 2021-6-1 10:44
system上面一个有个编辑,点下去,权限就能改了,全部允许了。

点完编辑后,还是和原来一样,system 下的选项有两个,一个是允许选项,是灰色不让更改,另一个是拒绝选项,选哪边呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-1 14:09:23 | 显示全部楼层
huyanmin 发表于 2021-6-1 12:37
点完编辑后,还是和原来一样,system 下的选项有两个,一个是允许选项,是灰色不让更改,另一个是拒绝选 ...

不应该只有两个啊,下面有没有完全控制,修改,读取,写入这些东西吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-1 17:37:08 | 显示全部楼层
本帖最后由 huyanmin 于 2021-6-1 17:39 编辑
Hoiste 发表于 2021-6-1 14:09
不应该只有两个啊,下面有没有完全控制,修改,读取,写入这些东西吗?

  

#我对record.txt文件操作如下:

system的权限   允许   拒绝  #允许 下面方框是灰色勾选不了,拒绝下面可以勾选,不知怎么选择
完全控制        □     □
修改              □     □
读取和修改    □     □
读取             □      □
写入             □      □
特殊权限      □      □
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-1 20:31:39 | 显示全部楼层    本楼为最佳答案   
huyanmin 发表于 2021-6-1 17:37
#我对record.txt文件操作如下:

system的权限   允许   拒绝  #允许 下面方框是灰色勾选不了, ...

勾选不了,那问题就不好弄了。。试试能不能分盘吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-8 05:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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