dqhlfbxnc76pgwonm

顿顿顿顿:) - 歌单 - 网易云音乐
顿顿顿顿:)
播放:80次
网易云音乐多端下载
同步歌单,随时畅听320k好音乐
网易公司版权所有(C)杭州乐读科技有限公司运营:打了鸡血?脉动一下,马上回来。。。 - 歌单 - 网易云音乐
打了鸡血?脉动一下,马上回来。。。
嗨!起劲儿的东西!
播放:74次
网易云音乐多端下载
同步歌单,随时畅听320k好音乐
网易公司版权所有(C)杭州乐读科技有限公司运营:久处不厌 - 歌单 - 网易云音乐
陈珊妮《Love you,John》专辑封面
播放:784次
网易云音乐多端下载
同步歌单,随时畅听320k好音乐
网易公司版权所有(C)杭州乐读科技有限公司运营:kejser-喜欢的音乐 - 歌单 - 网易云音乐
kejser-喜欢的音乐
播放:119次
网易云音乐多端下载
同步歌单,随时畅听320k好音乐
网易公司版权所有(C)杭州乐读科技有限公司运营:您所在的位置: &
Python学习(九)IO 编程 ―― 文件夹及文件操作
时间: 编辑:feesland 来源:本站整理
Python 文件夹及文件操作
    我们经常会与文件和目录打交道,对于这些操作,python可以使用 os 及 shutill 模块,其中包含了很多操作文件和目录的函数。这边,仅介绍通常会用到的方法。
    os 可以操作简单的文件夹及文件操作,引入用 &import os,可用&&help(os)& 或是&&dir(os)& 查看其用法。注意有些函数在os模块中,有的是在os.path模块中。
    shutil 模块提供了大量的文件的高级操作。特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作。须引入 import shutil& ,具体 help。
    可先在 D:\ 下创建文件夹 Python_os , 再在其下创建文件夹 os, 再在其下创建 test.txt;之后的 os 示例会在该文件夹下操作
      
  判断路径或文件
    os.path.isabs(...)      #&判断是否绝对路径
    os.path.exists(...)     # 判断是否真实存在
    os.path.isdir(...)    && # 判断是否是个目录
    os.path.isfile(...)    && # 判断是否是个文件
  注意:&& 把两个路径合成一个时,不要直接拼字符串,而要通过os.path.join()函数,这样可以正确处理不同操作系统的路径分隔符。在Linux/Unix/Mac下,os.path.join()返回这样的字符串:&&& part-1/part-2
      而Windows下会返回这样的字符串:& part-1\part-2
import shutil
file_dir = "D:\\Python_os\\os"
# 注意 \\ ;windows 下是这么表示的;Linux 和 Mac 是 /
file_name = "test.txt"
file_abs = os.path.join(file_dir, file_name)
# os.path.join(...) 表示路径链接
'''判断路径或文件'''
print (1,os.path.isabs(file_dir))
# 判断是否绝对路径
print (2,os.path.isabs(file_name))
print (3,os.path.isabs(file_abs))
print (4,os.path.exists(file_abs))
# 判断是否真实存在
print (5,os.path.exists(os.path.join(file_dir,"xxx")))
print (6,os.path.isdir(file_dir))
# 判断是否是个目录
print (7,os.path.isdir(file_abs))
print (8,os.path.isfile(file_dir))
# 判断是否是个文件
print (9,os.path.isfile(file_abs))
     运行结果:&
  路径名、文件名分隔
    os.path.split(...)&& &&& &    #&分隔目录和文件名/文件夹名&&&&&&&&&
    os.path.splitdrive(...)&& &&&& #&分隔盘符(windows系统)&&&&&
    os.path.splitext(...)&& &&& &&& # 分隔文件和扩展名
      运行结果:  
      这些合并、拆分路径的函数并不要求目录和文件要真实存在,它们只对字符串进行操作。
  工作目录及创建文件夹操作
    os.path.getcwd()      # 获取当前工作目录
    os.path.chdir(...)    & # 改变工作目录
    os.path.listdir(...)     # 列出目录下的文件
    os.path.chdir(...)    & # 创建单个目录&&&     注意:创建多级用 os.makedirs()
    os.path.listdir(...)     # 创建多级目录
file_dir = "D:\\Python_os\\os"
print (os.getcwd())
# 获取当前工作目录
os.chdir(file_dir)
# 改变工作目录
print (os.getcwd())
print (os.listdir(file_dir))
# 列出当前工作目录的所有文件 Python2 不支持 os.listdir()
Python3 会列出当前工作目录下的所有文件
os.mkdir("test_mkdir")
# 在当前工作目录下创建文件夹 test_mkdir;注意不可存在相同文件夹,不然会报错
os.makedirs("test_mkdir\\test1")
os.chdir(".\\test_mkdir")
# . 表示本级目录; .. 表示上级目录
print (os.getcwd())
for i in range(2,6):
# 使用for循环等,可方便的创建多个文件夹
dir_name = "test" + str(i)
os.mkdir(dir_name)
&    在执行了上述实例代码后,os 文件夹中新建了空的 test_mkdir 文件夹,而 test_dir 文件夹下也新建出了 test1 至 test5 的空文件夹
&      
    创建文件夹可能会出错,原因具体有:(1) path 已存在时(不管是文件还是文件夹)& (2) 驱动器不存在& (3) 磁盘已满& (4) 磁盘是只读的或没有写权限
  删除文件夹/文件
    os.rmdir(...)        &&& # 删除空文件夹&&&&&&&&&&&&&&&&&&&& 注意:必须为空文件夹& 如需删除文件夹及其下所有文件,需用 shutil
    os.remove(...)&&&&&&&&&&&&&&&&&& # 删除单一文件
    shutil.rmtree(...)&&&&&&&&&&&&&& # 删除文件夹及其下所有文件
    在上方示例的文件夹基础上,操作删除 test1 文件夹 (空文件夹可用 os.rmdir() ),删除&test_mkdir 及其下所有文件();示例代码如下
import shutil
file_dir = "D:\\Python_os\\os"
''' 删除文件/文件夹 '''
os.chdir(file_dir+"\\test_mkdir")
print(os.getcwd())
# 确保当前工作目录
print(os.listdir(os.getcwd()))
# 查看当前文件夹下所有文件
os.rmdir("test1")
# 删除 test1 文件夹(空文件夹)
print(os.listdir(os.getcwd()))
os.chdir("..\\")
print(os.getcwd())
# 切换到上级目录
print(os.listdir(os.getcwd()))
shutil.rmtree("test_mkdir")
# 删除 test_mkdir 及其下所有文件
&    可见运行结果如下;产生异常的可能原因:& (1) 路径不存在 (2) 路径子目录中有文件或下级子目录(os.rmdir) (3) 没有操作权限或只读
        
&    只是删除单一文件,则用& &os.remove("test.txt") & 即可;产生异常的可能原因:& (1) 文件不存在&& (2) 对该文件没有操作权限或只读。
  重命名
    可对某一文件或文件夹重命名&&&os.rename(oldfileName, newFilename)&&
    在os文件夹中新建文件夹 test,文件 test.txt    
''' 重命名文件夹/文件 '''
os.chdir(file_dir)
print(os.listdir(os.getcwd()))
os.rename("test","test1")
os.rename("test.txt","test1.txt")
# 重命名,注意需要带扩展名
print(os.listdir(os.getcwd()))
    可见运行结果如下;产生异常的可能原因:&&(1) oldfilename 旧文件名不存在(文件须带扩展名) & (2)newFilename 新文件已经存在
    注意:新文件的扩展名不能遗漏,理论上需要保持类型一致;但这也不失为改文件类型的一种方式(相当于直接改文件的扩展名)
热门关键字}

我要回帖

更多关于 nchlshader2教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信