天边一抹灬红 发表于 2020-3-20 15:48:42

python中的文件和目录

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

https://s1.ax1x.com/2020/03/20/8gEZ0s.png求助大神
https://imgchr.com/i/8gEZ0s这个是我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其他的文件和文件咋怎么不输出

感谢个位大神

qiuyouzhi 发表于 2020-3-20 15:54:22

1,isfile就是这个路径里是否存在着你定义的文件
2,你打印一下i试试呗

天边一抹灬红 发表于 2020-3-20 15:58:23

qiuyouzhi 发表于 2020-3-20 15:54
1,isfile就是这个路径里是否存在着你定义的文件
2,你打印一下i试试呗

1.我定义的文件是指什么呢?
2.打印i也是一样的结果

wp231957 发表于 2020-3-20 16:21:02

天边一抹灬红 发表于 2020-3-20 15:58
1.我定义的文件是指什么呢?
2.打印i也是一样的结果

1楼代码 我这里没有问题,目录和文件都能输出来

zltzlt 发表于 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)

天边一抹灬红 发表于 2020-3-20 17:29:30

zltzlt 发表于 2020-3-20 17:21
试试这样:

这样结果都出来了,请问大佬chdir这个函数有什么用

zltzlt 发表于 2020-3-20 17:30:25

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

切换工作目录,i 只是单纯的文件名,不包括路径

天边一抹灬红 发表于 2020-3-20 17:31:56

zltzlt 发表于 2020-3-20 17:30
切换工作目录,i 只是单纯的文件名,不包括路径

明白了,能跟我解释一下isfile(path),isdir(path)这两个函数吗?感谢大佬

zltzlt 发表于 2020-3-20 17:33:15

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

isfile() 返回 path 是否为文件不是文件夹,isdir() 返回 path 是否为文件夹不是文件,两者恰好相反

天边一抹灬红 发表于 2020-3-20 17:35:07

zltzlt 发表于 2020-3-20 17:33
isfile() 返回 path 是否为文件不是文件夹,isdir() 返回 path 是否为文件夹不是文件,两者恰好相反

谢谢大佬指点

txxcat 发表于 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)
页: [1]
查看完整版本: python中的文件和目录