ZBHH

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()

 

分类:

技术点:

相关文章:

  • 2021-12-27
  • 2021-08-31
  • 2018-10-01
  • 2021-05-08
  • 2021-12-12
  • 2021-12-10
  • 2020-03-02
  • 2021-09-07
猜你喜欢
  • 2021-10-17
  • 2021-11-11
  • 2021-12-04
  • 2018-06-15
  • 2021-12-27
  • 2020-02-02
  • 2019-02-24
相关资源
相似解决方案