zoukankan      html  css  js  c++  java
  • Python文件操作

    #文件操作(写入文件,读取文件)
    #写入文件
    #1.打开文件(打开冰箱)
    fp = open('test.txt','w')
    print(fp,type(fp))
    
    #2.写入文件(把大象塞进去)
    fp.write('什么时候你会觉得不再年轻了?')
    
    #3.关闭文件(关上冰箱)
    fp.close()
    
    #读取文件
    #1.打开文件(打开冰箱)
    fp = open('test.txt','r')
    #print(fp)
    
    #2.读取文件(把大象拿出来)
    txt = fp.read()
    print(txt)
    
    #3.关闭文件(把冰箱门关闭)
    fp.close()
    
    
    #文件常用函数
    #open() 打开或者新建一个文件
    '''
    open('文件路径','打开模式')
    
    #基本模式
    w   write  写入模式
        1.文件不存在则新建文件,文件已存在,打开并且清空文件
        2.该模式下只能进行写入操作
    r   read   读取模式
        1.文件不存在则报错,文件已存在则打开文件,将指针指向文件的开头
        2.该模式下只能进行读取操作
    a   append  追加模式
        1.文件不存在则新建文件,文件已存在则打开文件,将指针指向文件结尾
        2.该模式下只能进行写入操作
    x   xor   异或模式
        1.文件已存在则报错,文件不存在则新建文件
        2.该模式下只能进行写入操作
    #扩展模式(不能单独使用必须和基本模式一起用)
    +  plus  增强模式
        可以使得任何基本模式变成读写模式
    b  bytes  位模式
        获取数据或者写入数据的类型为bytes类型
    '''
    
    #增强模式
    fp = open('wangwang.txt','w+')
    #写入操作
    fp.write('四处张望')
    #将指针设置为开头位置
    fp.seek(0)
    #读取操作
    result = fp.read()
    print(result)
    fp.close()
    
    #bytes模式  涉及到一个bytes的数据类型
    content = '喵星人为啥不能作为警猫呢?'
    result = content.encode()#编码操作
    print(result)
    
    fp = open('miaomiao.txt','wb')
    fp.write(result)
    fp.close()
    
    fp = open('miaomiao.txt','rb')
    result = fp.read()
    print(result.decode())#解码操作
    fp.close()
    
    
    #read() 读取文件内容
    fp = open('miaomiao.txt','r')
    #读取所有内容
    #txt = fp.read()
    
    #读取指定个数的字符
    txt = fp.read(5)
    print(txt)
    fp.close()
    
    #write()  写入文件内容
    fp = open('miaomiao.txt','w')
    fp.write('kqkyhtk')
    fp.close()
    
    #readline()  一次读取一行数据
    fp = open('question','r')
    result = fp.readline()
    result = fp.readline()
    
    #读取一行数据的前n个字符
    result = fp.readline(5)
    print(result)
    fp.close()
    
    #readlines()  一次性将文件按行读取到列表当中取
    fp = open('question','r')
    #读取所有行
    result = fp.readlines()
    
    #根据指定的字符长度 读取n行
    result = fp.readlines(50)
    print(result)
    fp.close()
    
    #writelines() 将容器中的数据一次性写入文件
    '''
    txt = ['一
    ','二
    ','三
    ','四
    '
    fp = open('num.txt','w')
    fp.writelines(txt)
    fp.close()
    '''
    #truncate()  文件截取操作
    #fp = open('num.txt','a')
    
    #这里的长度单位不是字符而是字节
    #fp.truncate(2)
    #fp.close()
    
    '''
    字符:一个独立存在的文字就是一个字符,无论什么语言什么符号
    字节:用于存储数据的基本单位
        1TB = 1024GB
        1GB = 1024MB
        1MB = 1024KB
        1KB = 1024B
        1B = 8bytes
    字符集:
        基本的英文编码(1个字节)
            ascii码  -> 记录英文和数字及部分符号的编码 (128个)
            扩展ascii码 -> 增加了ascii码的数量(256个)
            
        制作特定语言的编码(2个字节[针对汉字])
            gb2312编码 -> 存储了5000个常用汉字  
            gb10800编码-> 扩充了汉字数量
            gbk编码 -> 包含了所有汉字
            big5编码 -> 繁体中文编码
        
        制作世界统一编码(3个字节[针对汉字])
            utf-8      包含世界上绝大部分的文字的编码
            utf-16     包含世界上绝大部分的文字的编码
    '''
    
    #文件函数
    '''
    #tell() 获取文件指针的位置(字节)
    fp = open('01.txt','r')
    
    #输出当前指针位置
    pos1 = fp.tell()
    print(pos1)
    
    #读取内容
    result = fp.read()
    print(result)
    
    #输出当前指针位置
    pos2 = fp.tell()
    print(pos2)
    
    fp.close()
    '''
    #seek() 移动文件指针的位置
    fp = open('01.txt','r')
    #获取开始文件指针位置
    print(fp.tell)
    #移动指针
    fp.seek(9)
    #获取开始文件指针位置
    print(fp.tell())
    #读取文件
    result = fp.read()
    print(result)
    fp.close()
    #shutil模块 高级文件处理模块
    import shutil
    
    #copy() 复制文件
    #result = shutil.copy('/home/sy/下载/001','/home/sy/文档/002')
    #print(result)
    
    #copy2() 复制文件,保留原有数据信息
    #result = shutil.copy2('/home/sy/下载/001','/home/sy/文档/003')
    #print(result)
    
    #copyfileobj() 将一个文件的内容拷贝到另一个文件当中
    #result = shutil.copyfileobj(open('01.txt','r')),open('02.txt','a')
    #print(result)
    #copyfile() 将一个文件的内容拷贝到另一个文件当中 copyfileobj(open(,'r'),open(,'w'))
    #result = shutil.copyfile('01.txt','02.txt')
    #print(result)
    
    #copytree() 复制整个目录
    #result = shutil.copytree('/home/sy/PycharmProjects/python3/11.9','/home/sy/my11.9')
    #print(result)
    
    #copymode()  拷贝权限
    #result = shutil.copymode('/home/sy/文档/canzhao','/home/sy/文档/mode')
    #print(result)
    
    #copystat()  拷贝元数据
    #result = shutil.copystat('/home/sy/文档/002','/home/sy/文档/stat')
    #print(result)
    
    #rmtree()  删除整个目录
    #result = shutil.rmtree('/home/sy/下载/py)
    
    #move()  移动文件或者目录
    #result = shutil.move('/home/sy/下载/001','/home/sy/文档/001')
    #result = shutil.move()
    
    #which()  检测命令文件所在的文件夹
    #result = shutil.which('reboot')
    #print(result)
    
    #disk_usage()  查看磁盘使用量
    result = shutil.disk_usage('/')
    print(result)
    
    #make_archive()  制作归档文件(将指定的文件夹归档成一个文件)
    #result = shutil.make_archive('/home/sy/下载/guidang','zip','/home/sy/PycharmProjects')
    #print(result)
    
    #unpack_archive()  解包归档文件
    #result = shutil.unpack_archive('/home/sy/下载/myguidang.zip','/home/sy/文档')
    #print(result)
    
    #get_archive_formats() 获取归档允许使用的类型
    #result = shutil.get_archive_formats()
    #print(result)
    
    #get_unpack_formats()  获取系统解包的文件类型(包含类型对应的后缀)
    #result = shutil.get_unpack_formats()
    #print(result)
    压缩与解压
    #zip模块
    import zipfile
    '''
    #压缩操作
    #1.创建压缩文件
    zp = zipfile.ZipFile('./11.6.zip','w',zipfile.ZIP_STORED,True)
    #print(zp)
    
    #2.向压缩文件中添加内容
    #zp.write('/home/sy/文档/001','001')
    #zp.write('/home/sy/文档/002','00-2')
    zp.write('./getdirsize.py','mydir/gdp.py')
    
    #3.关闭压缩文件
    zp.close()
    '''
    
    #解压缩文件
    #1.打开压缩文件
    zp = zipfile.ZipFile('./11.6.zip','r')
    print(zp)
    
    #2.解压操作
    #指定文件
    #zp.extract('00-2','/home/sy/下载')
    #全部文件
    #zp.extractall('./boys')
    
    #3.关闭文件
    zp.close()
    
    #tar模块
    import tarfile
    '''
    #1.打开压缩文件
    tp = tarfile.open('./07.tar','w:bz2')
    print(tp)
    
    #2.添加内容 压缩文件
    tp.add('01.py',arcname= '1.py')
    tp.add('02.py',arcname= '2.py')
    tp.add('01.txt',arcname= 'txt/1.txt')
    
    #3.关闭压缩文件
    tp.close()
    '''
    #解压操作
    #1.打开压缩文件
    tp = tarfile.open('07.tar','r')
    
    #2.解压文件
    #解压所有文件
    #tp.extractall('./girls')
    
    #解压指定文件
    tp.extract('1.py','/home/sy')
    
    #3.关闭压缩文件
    tp.close()
  • 相关阅读:
    eclipse建立工作集管理项目
    echarts-x
    GeoJSON
    mysql 5.7 root password 过期
    kubernetes centos7
    JestClient
    树莓派镜像制作
    docker run elasticsearch
    vm.max_map_count
    远程访问jupyter notebook
  • 原文地址:https://www.cnblogs.com/sunyang945/p/7900927.html
Copyright © 2011-2022 走看看