Ari小虎鱼 发表于 2022-5-16 18:46:22

文件路径课后作业求救

Python第30讲课后作业
2. 编写一个程序,用户输入文件名以及开始搜索的路径,搜索该文件是否存在。如遇到文件夹,则进入文件夹继续搜索,程序实现如图:

我用的Pathlib,为什么它执行完input之后死活打不出来
from pathlib import Path

f1 = Path(input("请输入待查找的初始目录:"))
if not f1.exists():
    print("路径不存在!")
else:
    f2 = input("请输入需要查找的目标文件:")
    for each in list(f1.glob('**/*.txt')):
      if f2 == each:
            print(each)
      else:
            print("NONE")

Twilight6 发表于 2022-5-16 19:12:31


each 是文件的绝对路径,而你 f2 只有文件名,导致 if 不可能成立,我们可以

将 rsplit 切割一次,取最后一个元素进行比较即可,参考代码:

from pathlib import Path

f1 = Path(input("请输入待查找的初始目录:"))
if not f1.exists():
    print("路径不存在!")
else:
    f2 = input("请输入需要查找的目标文件:")
    for each in list(f1.glob('**/*.txt')):
      if f2 == str(each).rsplit("\\\", 1)[-1]:
            print(each)
      else:
            print("NONE")

Ari小虎鱼 发表于 2022-5-16 21:25:06

Twilight6 发表于 2022-5-16 19:12
each 是文件的绝对路径,而你 f2 只有文件名,导致 if 不可能成立,我们可以

将 rsplit 切割一次,取 ...

为什么它还是不打印{:10_266:}
怀疑IDLE陷入了昏迷状态

Twilight6 发表于 2022-5-16 21:26:34

Ari小虎鱼 发表于 2022-5-16 21:25
为什么它还是不打印
怀疑IDLE陷入了昏迷状态


我这里正常执行了:




Ari小虎鱼 发表于 2022-5-16 21:30:06

Twilight6 发表于 2022-5-16 21:26
我这里正常执行了:

{:10_257:}为何
好吧我研究研究
页: [1]
查看完整版本: 文件路径课后作业求救