• 核心编程9 文件和文件的输入输出 (os模块)


    1  python内建函数open和file

        文件打开方便读取:f = open('文件名','模式','缓冲模式')         #'r'读取,'w'写入(先清空后创建).'a'追加   

    详情文件模式:
    r 以读方式打开
    rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)
    w 以写方式打开 (必要时清空)
    a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
    r+ 以读写模式打开
    w+ 以读写模式打开 (参见 w )
    a+ 以读写模式打开 (参见 a )
    rb 以二进制读模式打开
    wb 以二进制写模式打开 (参见 w )
    ab 以二进制追加模式打开 (参见 a )
    rb+ 以二进制读写模式打开 (参见 r+ )
    wb+ 以二进制读写模式打开 (参见 w+ )
    ab+ 以二进制读写模式打开 (参见 a+ )
    

        文件读取:

            f.read()     #读取所有文件内容到字符串,从开头到结尾
            f.readline()        #
    读取文件的一行作为字符串,一行一行地读,比较费时间     遍历:for i in range(10):     print f.readline()
            f.readlines()          #
    读取所有行,输出一个字符串的列表,比较占内存

        文件输出:

            f.write()     #把内容写进文件中去

            f.writelines()     #接受一个字符串列表作为参数,将他们写入文件

     

    #实例:把input的内容写到t1.txt中
    f = open('t1.txt','w')
    while True:
        aline = raw_input('enter a line,"."to quit:')
        if aline != '.':
            f.write(aline+'
    ')
    else:
    break
    f.close()

     

    2 os包相关操作

       当前路径: print os.getcwd(),'获得当前路径'

        文件夹和文件夹名称: print os.path.split('Dpytharm学习文件py5.py')    #将文件的路径和文件名分开,放到元组中

                                                 print os.path.join('Dpytharm学习文件','shiyan.txt'),    #把路径和文件名组合起来'

        路径和文件:print os.path.dirname('Dpytharm学习文件lianxi.txt'),    #输出文件中的文件夹部分,元组'

                                   

     

     

    1. os.name——判断现在正在实用的平台,Windows 返回 ‘nt'; Linux 返回’posix'
    
    2. os.getcwd()——得到当前工作的目录。
    
    3. os.listdir()——指定所有目录下所有的文件和目录名
    
    4. os.remove()——删除指定文件
    
    5. os.rmdir()——删除指定目录
    
    6. os.mkdir()——创建目录
    
    7. os.path.isfile()——判断指定对象是否为文件。是返回True,否则False
    
    8. os.path.isdir()——判断指定对象是否为目录。是True,否则False。
    
    9. os.getcwd()——获得当前工作的目录(get current work dir)
    
    13. os.chdir()——改变目录到指定目录
    
    14. os.path.getsize()——获得文件的大小,如果为目录,返回0
    
    15. os.path.abspath()——获得绝对路径。
    
    16. os.path.join(path, name)——连接目录和文件名
    

     

    3  实例(使用的是linux系统)#!/user/bin/python

    #!/user/bin/python
    #coding:utf-8
    
    #打印出某文件夹下面的文件文件夹和子文件子文件夹的绝对路径
    
    import os
    allfile=[]
    def dirList(path):
        filelist=os.listdir(path)
        for filename in filelist:
            filepath= os.path.join(path,filename)
            if os.path.isdir(filepath):    # 递归调用本身:传入子文件的路径,listdir,遍历,文件名和路径合起来,判断是不是目录,
                dirList(filepath)    
            allfile.append(filepath)
    
        return allfile
    
    
    afile=dirList('/home/daqing/daqing/testfile/user1')
    print afile
    

    4目录遍历简洁升级版

        os.walk(path):该函数返回一个元组,元组的元素是:每次遍历的路径名,当前目录列表和文件列表    

    os.walk('/home/daqing/lianxi/testfile/user2')返回一个生成器类型,大体格式应当是('/home/daqing/lianxi/testfile/user2',['hehe'],['7777'])
    import os
    for path,d,filelist in os.walk('/home/daqing/lianxi/testfile/user2'):
        for filename in filelist:
            print os.path.join(path,filename)
    
    #返回结果:
    /home/daqing/lianxi/testfile/user2/7777
    /home/daqing/lianxi/testfile/user2/hehe/8888目

    目录结构如下:

    ── user2
    │   ├── 7777
    │   └── hehe
    │           ├── 8888
    │           └── haha

      



     

     

  • 相关阅读:
    socket多线程TCP和UDP
    unittest基本使用
    go语言中的文件创建,写入,读取,删除(转)
    关于mvn多模块的理解
    uniapp云开发使用云对象获取请求信息与用户信息
    Springboot2.x 使用 micaxss 实现 xss 过滤
    北大韦神透露现状:自己课讲得不太好,中期学生退课后就剩下5、6个人
    来看看一位阿里P9的年薪和资产
    埋头苦干熬到年底,还是没有被提拔!
    【运维】Linux内存占用分析的几个方法,你知道几个?
  • 原文地址:https://www.cnblogs.com/0-lingdu/p/9431543.html
Copyright © 2020-2023  润新知