第五章 文件操作

5.1 文件介绍

(1)文件可以永久地保存数据

(2)文件在硬盘中存储的格式是二进制

5.2 文件的读、写、追加操作(只能以字符串形式进行)

(1)文件读取

①打开:使用open()函数可以打开文件

open(file,mode='r',encoding)

其中,file = 文件名

mode = 'r',r(read)只读打开,w(write)只写打开,a(append)追加打开

encoding 表示文件编码格式:包括gbk和utf-8

使用一个变量来接受open函数返回的结果

a = open('PRIDE AND PREJUDICE.txt', 'r')#打开文件
a.read()#读取文件
a.close()#关闭文件

②读取:a.read()

③关闭:a.close()

(2)文件的写操作

#w表示写操作,若文件不存在会首先创建文件
b = open('b.txt','w',encoding ='utf-8')#加入encoding 可以正确打印出中文
b.write('hello world\n')
b.write('你好,中国\n')
b.close()
>>> 

(3)追加文件

c = open('b.txt','a',encoding ='utf-8')
c.write('啦啦啦\n')
c.close

(4)读取文件补充

①文件.read(n),n代表一次读取多少字节的内容,默认读取全部

②在读取时,连续两次读取会将分行符'\n'算作一个字符读取,但在打印时只会显示分行

d = open('b.txt','r',encoding =' utf-8')
e = d.read(7)
e
>>> 'hello w'

f = d.read(7)
f
>>> 'orld\n你好'

③按行读取 

文件.readline() 一次读取一行内容;文件.readlines()一次读取所有行内容

字符串.strip()可以去除空格

g = open('b.txt','r',encoding = 'utf-8')
h = g.readline()
h.strip()
>>> 'hello world'

④读取大文件

#假设b.txt为大文件
f=open('b.txt','r',encoding='utf-8')
while True:
      buf = f.readline()
      if buf:#容器可以直接作为判断条件,有数据即为True
         print(buf,end='')
      else:
         break
f.close()

5.3 计算机的大小

(1)常见进制:

①二进制:只有0和1

②十进制:0-9

③十六进制:0-9,A,B,C,D,E,F

(2)①计算机中最小的单位bit(位),只有0和1

②字节:是计算机中基本的储存单位,byte

  1byte=8bit;1kb=1024byte

计算机中满1024byte进1,1MB=1024KB

(3)100M宽带意思是100bits,除以8=12.5M/s

(4)优盘,硬盘标500G,是按10进制算,计算机是按1024进一,所以一般会少一些

(5)文件打开模式

①文本文件:txt,py,md等能够使用记事本打开的文件

②二进制文件:具有特殊格式的文件,mp3,mp4,rmvb,avi,png,jpg等

③文本文件可以使用文本方式打开文件,也可以使用二进制方式打开,二进制文件只能以二进制方式打开

5.4 应用:文件备份

#读取要备份的文件名称
file_name1 = input('请输入原文件名:')
index = file_name1.rfind('.')
file_name2 = file_name1[:index]
file_name3 = file_name1[index:]
#读取备份文件
f = open(file_name1,'r',encoding = 'utf-8')
buf = f.read()
f.close()
#准备备份
file_name = file_name2 + '[优化备份]' + file_name3
f_w = open(file_name,'w',encoding = 'utf-8')
buf1 = f_w.write(buf)
f_w.close()

5.5 文件操作和目录操作

对文件和目录的操作需要引入os包

(1)文件重命名

(2)删除文件

(3)创建目录名

(4)删除目录

(5)获取当前目录

(6)修改当前目录名

(7)获取当前目录中的内容

#创建文件
f = open('a.txt','w',encoding = 'utf-8')
f.write('1')
f.close
#文件重命名
import os
os.rename('a.txt','aa.txt')
#删除文件
import os
os.remove('a.txt')
#创建目录
os.mkdir('test')
os.mkdir('test/aa')
#删除目录
os.rmdir('test/aa')#删除了aa
#获取当前文件目录
os.getcwd()
#修改当前目录名
import os
os.chdir('test')
#获取指定目录中的内容
import os
os.listdir()

5.6 应用:批量创建和修改文件名

import os
def creat_files():#批量创建文件
    os.chdir('test')#更改创建文件目录
    for i in range(10):#创建10个文件
        file_name = 'file_' + str(i) + '.txt'
        f = open(file_name,'w',encoding = 'utf-8')
        f.close()
    os.chdir('../')#返回上一级目录
creat_files()         

def modify_files():#修改文件名
    os.chdir('test')
    buf = os.listdir()#获取文件目录
    for file in buf:
        new_file = 'py_'+ file
        os.rename(file,new_file)
    os.chdir('../')
modify_files()      

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值