鱼C论坛

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

关于第30讲的一个奇怪的输出

[复制链接]
发表于 2020-2-26 21:07:33 | 显示全部楼层 |阅读模式

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

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

x
import os
os.chdir('F:\\1')
f=os.listdir(os.curdir)
for each in f:
    print(each+'\t1')#c
    if os.path.isdir(each):
        print(each+'\t2')#d
当执行这段代码的时候,输出结果是这样的
QQ图片20200226210417.png

import os
f=os.listdir('F:\\1')#b
for each in f:
    print(each+'\t访问到第一层')#c
    if os.path.isdir(each):
        print(each+'\t访问到第二层')#d
QQ图片20200226210512.png
当执行这段代码的时候,输出就不一样了
第一段是调用了os.chdir()来更改当前目录位置,但是这里的f和第二段的f不应该是一样的么
为什么执行的结果不一致
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-26 21:12:09 | 显示全部楼层
有区别。如果将第二段代码改成这样就没区别了:

  1. import os
  2. f=os.listdir('F:\\1')#b
  3. for each in f:
  4.     print(each+'\t访问到第一层')#c
  5.     if os.path.isdir('F:\\1\\' + each):
  6.         print(each+'\t访问到第二层')#d
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-26 23:22:51 | 显示全部楼层
zltzlt 发表于 2020-2-26 21:12
有区别。如果将第二段代码改成这样就没区别了:

感谢版主的帮助
你在里面增加了前面的路径让我想到了一个问题,我的执行文件和访问的文件夹不在同一个目录
import os
f=os.listdir('F:\\1')#b
for each in f:
    print(os.getcwd()+each+'\t访问到第一层')#c
    if os.path.isdir(each):
        
        print(os.getcwd()+each+'\t访问到第二层')#d
我改成这样之后输出了这样的结果
F:\python3.8文件夹1        访问到第一层
F:\python3.8文件夹2        访问到第一层
F:\python3.8新建 Microsoft Office Excel 工作表.xlsx        访问到第一层
F:\python3.8新建 Microsoft Office Word 文档.docx        访问到第一层

首先我要说明我的执行文件是在F:\python3.8里面的,而所访问的文件夹是F:\\1,也就是说执行文件和所访问的文件夹不在同一个目录的时候,是不是说,他访问的文件夹内容无法判断文件的类型,才导致这样的结果
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-22 21:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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