python基础09

python基础09

5.2文件的读写

5.2.1读数据

(1)read

使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据

如果读了多次,那么后面读取的数据是从上次读完后的位置开始的

(2)readlines

就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,包含换行符\n,其中每一行的数据为一个元素

(3)readline

每次读一行

5.2.2写数据write

使用write()可以完成向文件写入数据。如果文件不存在那么创建,如果存在那么就先清空,然后写入数据

5.3文件指针

(1)tell()

可用来显示文件指针的位置,字符数(windows系统中每行末尾会加上\r\n,(\r表示回行首,\n表示换行),但用read去读的时候只会读\n,不会读\r。

(2)seek()

seek(偏移量,whence) # 更改文件指针的位置

其中,偏移量在python3中是数字且仅能是正值,距离whence的字符数;whence可以取三个值:0:文件开头;1:当前位置;2:文件结尾

总结:文件指针操作都包含\r\n(Windows中),但读数据的时候只包含\n

5.4查看文件信息

print(f.name) #查看文件名

print(f.mode) #查看访问权限

print(f.encoding) #查看编码方式

print(f.closed) #检查文件是否关闭,返回True或者False

print(f.readable)

print(f.writeable)

5.5清空缓冲区(了解)

f.flush()

#清空缓冲区域(释放这个区域,将来可以分配任何数据),将缓冲区数据写入到硬盘

5.6操作目录(文件的相关操作)(os模块)

路径:相对路径(从当前位置出发)和绝对路径(以盘符出发)

文件的相关操作:

查看当前文件所在路径

import os

file_path = os.getcwd()

print(file_path)

查看某个路径下的所有文件—返回一个列表

list1 = os.listdir(r’C:\Users’) #./表示当前路径

print(list1)

#改变文件的操作路径

os.chdir(’…/’)#小括号里可以是任意想操作的路径

#创建单个文件夹

os.mkdir(‘aaa’)

#递归创建文件夹

os.makedirs(r’aaa\bbb\ccc’)

#删除ccc

os.rmdir(r’aaa\bbb\ccc’)

注意:os模块不允许递归删除(即:aaa不为空),想要递归删用shutil()(慎用)

import shutil

shutil.rmtree(r’aaa’)

#重命名rename(文件名,改成什么名字)

os.rename(‘原文件名’,‘要改成的名字’)

#删除文件1.txt

os.remove(‘1.txt’)

5.7文件批量重命名

把code文件夹的所有文件重命名为 daqiu…

把这个路径下的所有文件先查找到 – 遍历所有文件 :有一个新的名字daqiu… rename(旧,新)

import os
    os.chdir(r"C:\Users\GZC\Desktop\new")
    path = os.getcwd()
    list1 = os.listdir(path)
    print(list1)
for temp in list1:
    newname = 'daqiu' + temp
    os.rename(temp,newname)
#用切片法可以还原到原来的,如下:
import os
path = os.chdir(r'C:\Users\GZC\Desktop\new')
list1 = os.listdir(path)
print(list1)
for name in list1:
    if name.startswith('daqiu'):
    newname = name[5:]
    os.rename(name,newname)

5.8备份任意文件

import os
file_list = os.listdir('./') #如果想备份其它地方的数据,需用到chdir()
print(file_list)
file_name = input('请输入要备份的文件名:')
if file_name in file_list:
    index = file_name.rfind('.')
    new_name = file_name[:index] + "_backup" + file_name[index:]
    src_f = open(file_name, 'rb') # 音频文件,所以要二进制模式打开
    new_f = open(new_name, 'ab')
    while True:

		# 找一个变量保存每次读取的数据

​        data = src_f.read(1024 * 1024)if len(data) == 0:break
​        new_f.write(data)
​    new_f.close()
​    src_f.close()
else:print('文件不存在')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值