python 05文件

#文件访问模式:r只读(文件不存在会崩溃),
#w只写,a追加,rb以二进制读取,wb以二进制方式写入文件,ab以二进制方式追加文件。
file = open("1","r")
content = file.read()
print(content)
file.close()

建立txt文本,命名为1,内容如下:

abc小白
snnnnndd
ashudisln

文件的不同操作:read()读取全部,readline(),readlines()

#读取第i个字符以后的内容
file = open("1","rb")
#设置指针为3
file.seek(3)
#查看指针所在位置用tell
# tell函数返回文件当前位置,即文件指针当前位置,初始指针为0。
result = file.tell()
print(result)
file_data = file.read()
print(file_data)
file.close()
3
b'\xe5\xb0\x8f\xe7\x99\xbd\r\nsnnnnndd\r\nashudisln'

注:(1)当读取完整个文件,指针走到最后。
(2)输出以b开头表示使用二进制,n’表示换行。
(3)使用完文件后需使用close关闭文件。

readline()读取一行后指针走到第二行,若重新读取整个文件需设置指针。
readlines()文件中的数据按每行读取,把每行的数据放到一个列表

file = open("1","rb")
file_data1 = file.readline()
print(file_data1)
print(file.tell())
file.seek(0)
file_data1 = file.readlines()
print(file_data1)
file.close()
#解码
file = open("1","rb")
file_data = file.readlines()
for data in file_data:
    print(data.decode("utf-8"))

b'abc\xe5\xb0\x8f\xe7\x99\xbd\r\n'
11
[b'abc\xe5\xb0\x8f\xe7\x99\xbd\r\n', b'snnnnndd\r\n', b'ashudisln']
abc小白

snnnnndd

ashudisln

模拟文件的拷贝

#打开源文件读取数据
file = open("1","rb")
#读取
file_data = file.read()
#打开文件,写入数据(open可自动创建新文件)
new_file = open("2.txt","wb")
new_file.write(file_data)
#close
file.close()
new_file.close()

注:此种读取方式若文件较大会占用较多内存,改进如下:

file = open("1","rb")
#指定写入路径
new_file = open("3","wb")
#读取
while True:
    file_data = file.read(1024)
#判断是否读取完毕
    if file_data:
         new_file.write(file_data)
    else:
         print("读取完毕")
         break
file.close()
new_file.close()

文件和文件夹的相关操作

#更改文件名字引入OS模块
#os.rename("旧文件名”,“新文件名”)
import os
os.rename("1","1.txt")
#创建文件夹
os.mkdir("A")
#创建A中的文件
file = open("A/5.txt","wb")
#删除文件
os.remove("1.txt")
#删除文件夹:当文件夹中有文件时,使用os删除会报错
#删除带有文件的文件夹使用shutil模块
import shutil
shutil.rmtree("A")
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值