橘猫橘猫 发表于 2021-1-20 15:38:50

Python课后作业第三十讲第2题

import os

def search_file(start_dir,target):
    os.chdir(start_dir)
    all_files = os.listdir(os.curdir)
    for each_file in all_files:
      if each_file == target:
            print(os.getcwd() + os.sep + each_file)
      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)
为什么我的代码运行后提示{:5_94:} 对了一遍没差呀{:5_96:}

请输入要查找的目录'G:\\Python'
请输入目标文件名'something.txt'
Traceback (most recent call last):
File "G:/Python/search_file.py", line 15, in <module>
    search_file(start_dir,target)
File "G:/Python/search_file.py", line 4, in search_file
    os.chdir(start_dir)
OSError: 文件名、目录名或卷标语法不正确。: "'G:\\\\Python'"
>>>

EthanHsiung 发表于 2021-1-20 15:43:00

你输入路径和文件名的时候不要输入引号试试

橘猫橘猫 发表于 2021-1-20 16:01:17

EthanHsiung 发表于 2021-1-20 15:43
你输入路径和文件名的时候不要输入引号试试

可以了,可是为啥呀{:10_254:}

逃兵 发表于 2021-1-20 16:08:08

本帖最后由 逃兵 于 2021-1-20 16:09 编辑

橘猫橘猫 发表于 2021-1-20 16:01
可以了,可是为啥呀

input是将你输入的字符转化为字符串
如果你输入的文字中带引号,引号也会成为字符串中的字符
例:
输入:张三
name = '张三'
输入:'张三'
name = "'张三'"

你报错的最后一行可以看到

OSError: 文件名、目录名或卷标语法不正确。: "'G:\\\\Python'"

带引号的字符串"'G:\\\\Python'"错误,应该为"G:\\\\Python"
页: [1]
查看完整版本: Python课后作业第三十讲第2题