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)
原文地址:https://www.cnblogs.com/wangxy92/p/8080819.html