huyanmin 发表于 2021-5-31 08:36:37

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

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) # 递归调用

File "C:/Users/Administrator/Documents/exercise3002.py", line 6, in search_file
    for each_file in os.listdir(os.curdir) :
PermissionError: 拒绝访问。: '.'
>>>
=========== 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: 拒绝访问。: '.'
>>>
'''

Hoiste 发表于 2021-5-31 09:27:59

本帖最后由 Hoiste 于 2021-5-31 09:29 编辑

是把TXT文件放在C盘了吗,如果是这样的话就换个地方吧,C盘用代码跑权限不够的

huyanmin 发表于 2021-5-31 10:13:39

Hoiste 发表于 2021-5-31 09:27
是把TXT文件放在C盘了吗,如果是这样的话就换个地方吧,C盘用代码跑权限不够的

我把record.txt
文件放到桌面了,桌面位置是C:\Users\Administrator\Documents,我放到别的位置看一看

huyanmin 发表于 2021-5-31 10:19:30

我用的是固态硬盘,没有分区,只有一个c盘,那怎么办,电脑还要重新分区吗

Hoiste 发表于 2021-5-31 10:21:24

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

那就把TXT文件和.py文件全部右键-属性,然后把权限全勾上试试

huyanmin 发表于 2021-6-1 06:32:11

Hoiste 发表于 2021-5-31 10:21
那就把TXT文件和.py文件全部右键-属性,然后把权限全勾上试试

麻烦详细说下,都勾选啥,有点乱

Hoiste 发表于 2021-6-1 08:51:37

huyanmin 发表于 2021-6-1 06:32
麻烦详细说下,都勾选啥,有点乱

就是两个文件都右键-属性-安全的那个标签-编辑,然后就能选择下面的system权限,全部勾上允许,然后再试试能不能访问。毕竟只有一个系统盘的话就不能直接拉到其他盘了。

huyanmin 发表于 2021-6-1 09:40:29

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

我试试

huyanmin 发表于 2021-6-1 09:45:25

system 下的选项有两个,一个是允许选项,是灰色不让更改,另一个是拒绝选项,选哪边呢?

Hoiste 发表于 2021-6-1 10:44:17

huyanmin 发表于 2021-6-1 09:45
system 下的选项有两个,一个是允许选项,是灰色不让更改,另一个是拒绝选项,选哪边呢?

system上面一个有个编辑,点下去,权限就能改了,全部允许了。

huyanmin 发表于 2021-6-1 12:37:37

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

点完编辑后,还是和原来一样,system 下的选项有两个,一个是允许选项,是灰色不让更改,另一个是拒绝选项,选哪边呢?

Hoiste 发表于 2021-6-1 14:09:23

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

不应该只有两个啊,下面有没有完全控制,修改,读取,写入这些东西吗?

huyanmin 发表于 2021-6-1 17:37:08

本帖最后由 huyanmin 于 2021-6-1 17:39 编辑

Hoiste 发表于 2021-6-1 14:09
不应该只有两个啊,下面有没有完全控制,修改,读取,写入这些东西吗?


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

system的权限   允许   拒绝#允许 下面方框是灰色勾选不了,拒绝下面可以勾选,不知怎么选择
完全控制      □   □
修改            □   □
读取和修改    □   □
读取             □      □
写入             □      □
特殊权限      □      □

Hoiste 发表于 2021-6-1 20:31:39

huyanmin 发表于 2021-6-1 17:37
#我对record.txt文件操作如下:

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

勾选不了,那问题就不好弄了。。试试能不能分盘吧。
页: [1]
查看完整版本: Python 30课第二题,小甲鱼源代码执行出错,不知什么原因