基础知识六 文件操作

​ open():打开

​ file:文件的位置(路径)

​ mode:操作文件模式

​ encoding:文件编码方式

​ f :文件句柄

f = open("1.txt",mode = 'r',encoding = 'utf-8')
print(f.read())
f.close

1.文件操作模式:

​ r,w,a(重要)

​ rb,wb,ab(次要)

​ r+,w+,a+

1.1 r/w/a

1. r操作:
f = open('1.txt','r')
print(f.read()) #全部读取
print(f.read(5))#按照字符进行读取,前5个
print(f.readline())#读取一行内容,自动换行
print(f.readline().strip())#拖\n
print(f.readlines())#一行一行读,存为列表 #解决大文件:
for i in f:
print(i)#本质就是一行一行进行读取
2. w操作:
  1. 先清空文件
  2. 写入文件
f = open('1.txt','w',encoding='utf-8')
f.write('13030308\n')
f.write('456456\n')
f.close()
3. a操作:追加操作
#在源文件的基础上进行添加
f = open('1.txt','a',encoding='utf-8')
f.write('13030308\n')
f.write('456456\n')
f.close()

1.2. b操作:rb/wb/ab

#rb:
f1 = open('1.jpg','rb')
print(f1.read())
print(f1.read(3))#按照字节读取,读取前3个字节
#wb:
f = open('3.jpg','wb')
f.write(f1.read())
#ab:
f = open('2.jpg','ab')
f.write('你好啊',encode = 'utf-8')
1.3 +操作
1. r+:读写。应该先读后写
#错误示范
f = open('1.txt','r+')
#f = write('cx你太美')
#print(f.read())
#正确
print(f.read())
f = write('cx你太美')
2. w+ :清空写读
#读不到内容
f = open('1.txt','w+')
f = write('cx你太美')#光标问题
print(f.read())
3. a+:追加写读
#读不到内容
f = open('1.txt','a+')
f = write('cx你太美')#光标问题
print(f.read())

2.菜中菜:

1.f.tell(): 返回的是字节数
2.f.seek(): 移动光标,
  1. seek(0,0) --> 移动到文件头部
  2. seek(0,1) --> 当前位置
  3. seek(0,2) --> 移动到文件末尾
  4. seek(3) --> 按字节移动(按照不同编码集进行计算)
print(f.tell())#显示光标位置,返回的是字节数
f.seek(0)#移动光标
3.文件修改:
f =open('1.txt','r','utf-8')
#for i in f:
s = f.read()
s1 = s.replace('12','45')
f.close()
f1 =open('1.txt','w','utf-8')
f1.write(s1)
f1.close()
4.with open()#自动打开关闭文件
with open('1.txt','r','utf-8') as f,\
open('1.1.txt','w','utf-8') as f1:
for i in f:
s1 =i.replace('12','45')
f1.write(s1)
import os
os.rename('1.txt','1.bak')
os.rename('1.1.txt','1.txt')

3.相对路径:

  1. 绝对路径方式打开文件

    路径转义:

    1."\"

    2.r"C:\user\net"

f = open("E:\\python\\oldboy\\py\\190715",'r','utf-8')
#路径转义:1.'\\'
#2.r。-->repr():数据的原形态
#s = "[1,2,'3',4]"
#print(s)
#print(repr(s))#--显示数据原形态
f = open(r"E:\python\oldboy\py\190715",'r','utf-8')
print(f.read())
f.close()
  1. 相对路径
f = open("../190713/1.txt",'r','utf-8')
print(f.read())
f.close()
#推荐使用相对路径

python基础知识六 文件的基本操作+菜中菜的更多相关文章

  1. Python基础知识(六)------小数据池,集合,深浅拷贝

    Python基础知识(六)------小数据池,集合,深浅拷贝 一丶小数据池 什么是小数据池: ​ 小数据池就是python中一种提高效率的方式,固定数据类型使用同一个内存地址 代码块 : ​ 一个文 ...

  2. python基础学习Day8 文件的基本操作

    1.文件的基本操作初识 f = open('a.text', 'r', encoding='utf-8')data = f.read()print(data)f.close() 2.读  r  r+b ...

  3. Python基础知识(八)----文件操作

    文件操作 一丶文件操作初识 ###f=open('文件名','模式',编码): #open() # 调用操作系统打开文件 #mode #对文件的操作方式 #encoding # 文件的编码格式 存储编 ...

  4. python基础知识-day7(文件操作)

    1.文件IO操作: 1)操作文件使用的函数是open() 2)操作文件的模式: a.r:读取文件 b.w:往文件里边写内容(先删除文件里边已有的内容) c.a:是追加(在文件基础上写入新的内容) d. ...

  5. python基础知识---操作文件

    一.打开文件  open()函数 open函数返回一个文件对象. 用法:open('文件名','模式') 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内 ...

  6. Python基础知识:文件和异常

    1.相对路径:如果文件和程序在同一文件夹内,可不用路径:如果文件在程序所在文件夹下一级文件夹中,只需添加下一级文件夹名称即可: 在Linux和OS系统中:文件路径中使用斜杠(/) 在Windows系统 ...

  7. python基础知识六

    博客园的博文对每篇博文的长度似乎做了限制 面向对象编程, 在程序何种,根据操作数据的函数或语句块来设计程序.这被成为面向过程的编程.还有一种把数据和功能结合起来,用称为对象的东西包裹起来组织组织程序的 ...

  8. python基础知识四 小数据池,深浅拷贝,集合+菜中菜

    四.小数据池,深浅拷贝,集合+菜中菜 1小数据池 --缓存机制(驻留机制) ​ '==' 判断两边内容是否相等 ​ 'is' 基于内存地址进行判断是否相同 a = 10 b = 10 print(a ...

  9. python基础知识三 字典-dict + 菜中菜

    3.7字典:dict+菜中菜 1.简介 ​ 无序,可修改,用于存储数据,大量,比列表快,将数据和数据之间关联 ​ 定义:dict1 = {'cx':10,'liwenhu':80,'zhangyu': ...

随机推荐

  1. C语言实现的CRC16/CCITT-FALSE校验码函数

    要求:输入字符串“00 AA FF CC AA 01 00” 得到校验码“79B1” 方法1: // ConsoleApplication1.cpp: 定义控制台应用程序的入口点. // #inclu ...

  2. Java 线程池(一):开篇及Executor整体框架介绍

    一.开篇 线程池.数据库连接池,在平时的学习中总能接触到这两个词,但它们到底是什么?和线程,数据库连接有什么关系?为什么需要“池”?“池”的概念及作用是什么?要弄清楚这些问题,就要深入到“池”的实现中 ...

  3. delphi中最小化其他程序及所有程序最小化(使用 shell.minimizeAll 和自己寻找窗口这两种办法)

    1.所有程序最小化 uses ComObj;   var    shell : OleVariant; begin      shell := CreateOleObject('Shell.Appli ...

  4. How To Compile Qt with Visual Studio

    How To Compile Qt with Visual Studio FEBRUARY 1, 2011 This post is a step-by-step guide on how to co ...

  5. c# log4net 配置使用

    新增配置文件log4net.config,内容如下 <?xml version="1.0" encoding="utf-8" ?> <conf ...

  6. Qt5---ftp上传功能(使用组合的办法实现功能,QNetworkAccessManager自动管理分片上传,用QLoggingCategory屏蔽SSL警告)

      从Qt的版本进化中可以知道,在Qt4中的QFtp类到了Qt5中已经没有了,虽然可以通过在Qt5中自己编译出QFtp,但是Qt5中提供的QNetworkAccessManager在发送和请求网络方面 ...

  7. Gps坐标距离计算C#实现

    园子里找到两钟实现方式,做一记录,回头再认真学习,先拿来就用吧: 1.@旋风描述的算法: 场景:已知两个GPS点的经纬度坐标信息.计算两点的距离. 1. 距离/纬度关系 GPS: 22.514519, ...

  8. 3015C语言_流程设计

    第五章 流程设计 5.1 C语句概述 C语言的语句用来向计算机系统发出指令,一个实际的源程序通常包含若干语句,这些语句用来完成一定的操作任务. 1.其他类型语句 函数调用语句(由函数调用加一个分号构成 ...

  9. 第五章 FISCO BCOS 区块链浏览器的部署

    想了解相关区块链开发,技术提问,请加QQ群:538327407 前提 前面我们已经通过底层部署.sdk调测.自定义智能合约编写与部署.联合单元测试调测,已经初步对FISCO BCOS的区块链底层和实际 ...

  10. Redis 学习笔记(篇一):字符串和链表

    本次学习除了基本内容之外主要思考三个问题:why(为什么).what(原理是什么).which(同类中还有哪些类似的东西,相比有什么区别). 由于我对 java 比较熟悉,并且 java 中也有字符串 ...