Python学习(八)文件操作

1、读取

open中第一个参数放入的是要打开的文件名字,第二个参数是要对这个文件进行的操作,第三参数是用什么编码方式打开文件中的内容

模式:

r,w,a:只读,只写,追加(字符串)

r+,w+,a+:读写(字符串)

rb,wb,ab:(二进制)rb只读字节的模式,读出来的数据是bytes类型,在rb模式下,不能encoding字符集

r+b,w+b,a+b:可读可写二进制

相对路径:同一个文件夹下面的文件,直接写文件名就可以。

cup = open('文件名',mode='r',encoding='utf-8')
data = cup.read()
print(data)
cup.close() #文件操作完毕后,必须要关闭IO资源

绝对路径:从根目录下开始一直到文件名。

fh1=open(r"路径\文件名","r") #r——read读取 fh1——文件句柄

data=fh1.read()#将文件中所有的内容都读取;括号内加数字,从当前光标所在位置向后读取文件x个字符
data1=fh1.readline()#按行读取
data2=fh1.readlines()#按行读取所有
print(data)

for x in fh1:#读写大文件
    x = x.strip()#去除换行
    print(x)
fh1.close() #文件操作完毕后,必须要关闭IO资源

2.写入

fh1=open(r"路径\文件名","w") #w——write覆盖写入 fh1——文件句柄
fh1.write("写入的文本")
#如果文件存在,就清空重新写入;如果文件不存在,则新建一个文件并写入;用于新建文件
fh1=open(r"路径\文件名","a") #a——append文件追加写入
data="....."
fh1.write(data)

fh1.close() #文件操作完毕后,必须要关闭IO资源

 r+ 读写(默认从0的光标开始读;从当前光标所在位置写入;通过seek()调节位置)不常用

fh1 = open(r"路径\文件名", mode="r+")
data = fh1.read()#光标移至尾部
fh1.write('...')#添加内容
fh1.close()  # 文件操作完毕后,必须要关闭IO资源

补充

#一般用于文字写入
f =open('xxx.txt',mode='w',encoding='utf-8')
#1、将'文本'根据encoding指定的编码转换成二进制
#2、将二进制写入文件中
f.write()#w打开文件,则write传入字符串
f.close()

#一般用于图片、音频、视频、未知编码
f =open('xxx.txt',mode='wb')
#1、将要写入的'文本'转换成二进制
data = '...'
content =data.encode('utf-8')#按照编码转换成二进制
#2、将二进制写入文件中
f.write(content)#w打开文件,则write传入字符串
f.close()

 

 练习题

#!usr/bin/env python
# -*- coding:utf-8 -*-
# 1.请将user中的元素根据_链接,并写入‘a1.txt’的文件
user = ['alex', 'eric']
data = '_'.join(user)
print(data)
file_object = open('a1.txt', mode='w', encoding='utf-8')
file_object.write(data)
file_object.close()

# 2.请将user1中的元素根据'|'链接,并写入‘a2.txt’的文件
user1 = [{'name': 'alex', 'psw': '123'},     # alex|123
         {'name': 'glass', 'psw': 'clean'}]  # glass|clean

file_object = open('a2.txt', mode='w', encoding='utf-8')
for item in user1:
    line = '%s|%s\n' % (item['name'], item['psw'],)
    file_object.write(line)
file_object.close()

# 3.请将a2.txt中的文件读取出来并添加到一个列表中['alex|123','glass|clean']
# 方法1
file_object = open('a2.txt', mode='r', encoding='utf-8')
count = file_object.read()
print([count, ])

data = count.strip()
data_list = data.split('\n')
print(data_list)
file_object.close()
# 方法2
result = []
file_object = open('a2.txt', mode='r', encoding='utf-8')
for i in file_object:
    i = i.strip()
    print(i)
    result.append(i)
print(result)
file_object.close()

 

posted @ 2020-03-29 10:39  Brilliance+  阅读(171)  评论(0)    收藏  举报