鱼C论坛

 找回密码
 立即注册
查看: 1496|回复: 10

[已解决]python中的文件和目录

[复制链接]
发表于 2020-3-20 15:48:42 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 天边一抹灬红 于 2020-3-20 15:56 编辑


                               
登录/注册后可看大图
求助大神

                               
登录/注册后可看大图
这个是我E盘中A文件夹里面的内容
import os
path = 'E:\\A'
for i in os.listdir(path):
    if os.path.isfile(i):
        print(i)
    if os.path.isdir(i):
        print(i)
执行以上代码得到的结果为:OpenMe.mp3

问题1:isdir()判断指定路径是否存在且是一个目录
isfile()判断指定路径是否存在且是一个文件这两句话中的文件和目录怎么理解

问题2:执行代码为什么输出只有OpenMe.mp3其他的文件和文件咋怎么不输出

感谢个位大神
最佳答案
2020-3-20 17:21:21
试试这样:
import os
path = 'E:\\A'
os.chdir(path)    # 切换工作目录
for i in os.listdir(path):
    if os.path.isfile(i):
        print(i)
    if os.path.isdir(i):
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-20 15:54:22 | 显示全部楼层
1,isfile就是这个路径里是否存在着你定义的文件
2,你打印一下i试试呗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-20 15:58:23 | 显示全部楼层
qiuyouzhi 发表于 2020-3-20 15:54
1,isfile就是这个路径里是否存在着你定义的文件
2,你打印一下i试试呗

1.我定义的文件是指什么呢?
2.打印i也是一样的结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-20 16:21:02 | 显示全部楼层
天边一抹灬红 发表于 2020-3-20 15:58
1.我定义的文件是指什么呢?
2.打印i也是一样的结果

1楼代码 我这里没有问题,目录和文件都能输出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-20 17:21:21 | 显示全部楼层    本楼为最佳答案   
试试这样:
import os
path = 'E:\\A'
os.chdir(path)    # 切换工作目录
for i in os.listdir(path):
    if os.path.isfile(i):
        print(i)
    if os.path.isdir(i):
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-20 17:29:30 | 显示全部楼层

这样结果都出来了,请问大佬chdir这个函数有什么用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-20 17:30:25 | 显示全部楼层
天边一抹灬红 发表于 2020-3-20 17:29
这样结果都出来了,请问大佬chdir这个函数有什么用

切换工作目录,i 只是单纯的文件名,不包括路径
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-20 17:31:56 | 显示全部楼层
zltzlt 发表于 2020-3-20 17:30
切换工作目录,i 只是单纯的文件名,不包括路径

明白了,能跟我解释一下isfile(path),isdir(path)这两个函数吗?感谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-20 17:33:15 | 显示全部楼层
天边一抹灬红 发表于 2020-3-20 17:31
明白了,能跟我解释一下isfile(path),isdir(path)这两个函数吗?感谢大佬

isfile() 返回 path 是否为文件不是文件夹,isdir() 返回 path 是否为文件夹不是文件,两者恰好相反
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-20 17:35:07 | 显示全部楼层
zltzlt 发表于 2020-3-20 17:33
isfile() 返回 path 是否为文件不是文件夹,isdir() 返回 path 是否为文件夹不是文件,两者恰好相反

谢谢大佬指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-20 17:55:05 | 显示全部楼层
问题1:isdir()判断指定路径是否存在且是一个目录
isfile()判断指定路径是否存在且是一个文件这两句话中的文件和目录怎么理解

isdir(path):判断path是否是一个目录,如果path不是目录或者不存在,返回False,例如'E:\\A\\B',返回True,'E:\\a\\somthing.txt',返回False;
isfile(path):判断path是否是一个文件,如果path不是文件或者不存在,返回False,例如'E:\\A\\B',返回False,'E:\\a\\somthing.txt',返回True;


问题2:执行代码为什么输出只有OpenMe.mp3其他的文件和文件咋怎么不输出

   listdir()返回的是文件名和目录名,不包含完整路径,而你的当前目录不是'D:\A',所以用isdir()和isfile()无法返回正确值,之所以会返回OpenMe.mp3,是因为你的当前目录中有这个文件,碰巧而已。
    解决方法:
    1.使用os.chdir('E:\\A')或者os.chdir('E:/A'),代码楼上有;
    2.使用os.path.join:
import os
path = 'E:\\A'
for i in os.listdir(path):
    ipath=os.path.join(path,i)
    if os.path.isfile(ipath):
        print(i)
    if os.path.isdir(ipath):
        print(i)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 03:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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