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 = ['一\n','二\n','三\n','四\n'
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()

 

posted @ 2017-11-26 22:56  Sun阳  阅读(1041)  评论(0编辑  收藏  举报