zoukankan      html  css  js  c++  java
  • IO编程-----操作文件和目录

    参考学习:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431925324119bac1bc7979664b4fa9843c0e5fcdcf1e000

    import os
    import shutil #此模块可以看做是os模块的一个补充
    
    print(os.uname())
    
    #关于os使用
    print(os.path) #输出这是一个模块
    
    #查看当前目录绝对路径
    print(os.path.abspath('.'))
    
    #创建一个目录
    print(os.mkdir('/home/wangxy/test'))
    
    #删除一个目录
    print(os.rmdir('/home/wangxy/test'))
    
    #把两个路径合成一个
    print(os.path.join('/home/wangxy/文档','test.py'))
    
    #拆分路径,把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名
    print(os.path.split(os.path.abspath('')))
    
    #os.path.splitext()可以直接让你得到文件扩展名,很多时候非常方便
    print(os.path.splitext('/home/wangxy/文档/test.py'))
    
    #对文件改名
    os.rename('/home/wangxy/文档/test.py','/home/wangxy/文档/testrename.py')
    
    #删除文件
    os.remove('/home/wangxy/文档/Xiaomi.cvs')
    
    #复制文件
    shutil.copyfile('/home/wangxy/文档/testrename.py','/home/wangxy/文档/testcopy.py')
    
    print(os.path.isdir('/home/wangxy/音乐'))
    
    #列出目录下的所有目录
    #第一次后半部分使用os.path.isdir(x)始终得出结果为空,使用绝对路径后才成功判断
    print([x for x in os.listdir('/home/wangxy') if os.path.isdir(os.path.join('/home/wangxy/',x))])
    
    #列出所有的py文件
    #判断条件os.path.splitext(x)[1]=='.py', 此处不能遗漏 '.' 否则结果为空
    print([x for x in os.listdir('.') if os.path.isfile(os.path.join(os.path.abspath('.'),x)) and os.path.splitext(x)[1]=='.py'])

    练习题

    import os
    from datetime import datetime
    
    
    #练习,1.利用os模块编写一个能实现dir -l输出的程序。
    
    l=os.path.abspath('.')
    
    print('      Size     Last Modified  Name')
    print('------------------------------------------------------------')
    
    for f in os.listdir(l):
        size=os.path.getsize(f)
        '''
        getatime(f)表示获取文件最后一次访问时间
        getmtime(f)表示获取文件最后一次更新的时间
        datetime详解:http://www.cnblogs.com/tkqasn/p/6001134.html
        datetime.fromtimestamp:根据给定的时间戮,返回一个date对象
        strftime:格式化输出date对象
        '''
        time=datetime.fromtimestamp(os.path.getmtime(f)).strftime('%Y-%m-%d %H:%M')
        flag = '/' if os.path.isdir(f) else ''
    
        print('%10d   %s  %s%s'%(size,time,f,flag))
    
    
    #练习2:编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。
    find=input('查找关键字:')
    
    def findFiles(str):
        findlist=0
        for dirpath, dirname, files in os.walk('.', topdown=True):
            for name in files:
                if name.find(str)>=0:
                    print(os.path.join(dirpath, name))
                    findlist+=1
        if findlist==0:
            print('没找到')
    
    
    findFiles(find)
  • 相关阅读:
    XML解析
    用进度条显示从网络上下载文件进度
    android—获取网络数据
    android中sharedPreferences的用法
    实现listview中checkbox的多选与记录
    利用Bundle在activity之间传递对象
    Activity使用Serializable传递对象实例
    工作框架各种使用整理 -- 页面参数传递
    ubuntu中安装VMWare tools
    工作框架各种使用整理 -- 自己处理分页且输入条件中有过滤条件
  • 原文地址:https://www.cnblogs.com/wangxy92/p/8080819.html
Copyright © 2011-2022 走看看