python编程基础之三十六
文件处理:文件处理包括读文件,写文件
读文件:
1、打开文件
2、读取文件
3、关闭文件
写文件:
1、打开文件
2、写如文件
3、关闭文件
无论是读取文件还是写文件都时需要打开文件,和关闭文件
打开文件:
fp = open(file [, mode='r', encoding=None, errors=None])
file:文件路径,可以是相对路径和绝对路径
mode:文件打开模式
| r | 只读 |
| w | 写之前会清空文件的内容 |
| a | 追加的方式,在原本内容中继续写 |
| r+ | 可读可写 |
| w+ | 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
| a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
| b | rb、wb、ab、rb+、wb+、ab+意义和上面一样,用于二进制文件操作 |
encodeing: 文件编码方式,不用于二进制文件,一般是utf-8,gbk
errors:指定如何处理编码和解码错误 ,适用于文本文件
返回值:一个可迭代的文件对象一般用fp
读取文件常用函数:
read([size]) 读取文件(读取size字节,默认读取全部),
readline([size]) 读取一行,如果指定size,将读入指定的字符数,
readlines() 把文件内容按行全部读入,返回一个包含所有行的列表
#打开文件
fp = open('qfile.txt','r',encoding='utf-8') #读取文件全部内容
#content = fp.read()
#print(content) #读取指定字符数,包括行尾的换行符\n
# print(fp.read(20)) #读取一行
# print(fp.readline(5)) #读取指定字符数
# print(fp.readline()) #读取一整行,直到碰到一个\n #读取所有行,返回列表
# print(fp.readlines()) #关闭文件
fp.close()
文件
关闭文件 :fp.close
文件的指针移动:file_obj.seek(offset,whence=0),
第一个参数表示偏移量,必须是正数
官方文件里面说的第二个参数whence可以是0,1,2
0 表示开始文件开始位置,
1 表示当前位置
2 表示文件结尾
但是使用1,2的时候总是报错,还没找到解决办法
返回值是新的位置
#1.txt内容:hello world
with open('1.txt','r',encoding='utf-8') as fp:
fp.seek(5) #移动到hello后的空格位置
print(fp.read(3)) #wo
fp.seek(0) #移动到开头
print(fp.read(5)) #hello
print(fp.tell()) #tell()显示当前指针位置
文件指针移动
文件操作还有csv操作,
import csv
with open(r'csv\winequality-red.csv') as fp: #1.打开文件
#delimiter指定分隔符
csv_reader = csv.reader(fp,delimiter=';') #2.获取csv读取器
header = next(csv_reader) #获取第一行的标题
print(header)
for line in csv_reader: #3.遍历所有的行
print(line)
csv读取
import csv
l1 = [[1,2,3],[4,5,6],[7,8,9]]
#打开文件时,要添加newline=''参数,否则会多一个空行
with open('1.csv','w',newline='') as fp: #1.打开文件
#delimiter='\t'指定数据分隔符
csv_writer = csv.writer(fp,delimiter='\t') #2.获取writer
for line in l1:
csv_writer.writerow(line) #3.写入文件
csv写入
python编程基础之三十六的更多相关文章
- python编程基础之三十
时间模块: 时间戳:就是当前是键距离1970年1月1日0:0:0的秒数,后面还带小数,可以说是非常精确 时间的表示形式: a.以整数或者浮点数表示一个以秒为单位的时间间隔,这个时间的基础值1970.1 ...
- python编程基础之三十四
面向对象:三大特征:封装,继承,多态 封装:隐藏对象的实现过程,对外仅仅公开接口,控制在程序中的读取和修改的访问级别 类,函数都是一种封装 属性私有化:当类里面的属性不想被外部访问,可以将这些属性设置 ...
- python编程基础之三十八
正则表达式:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑. 需要引入内置模块r ...
- python编程基础之三十五
系统的魔术方法:系统的魔术方法特别多,但是也都特别容易懂,简单的讲就是对系统的内置函数进行重写,你需要什么效果就重写成什么样, 比如说len()方法针对的对象本来没有自定义类的对象,但是当你重写了__ ...
- python编程基础之三十二
成员方法:成员方法就是一个函数,只是作用域在类内,并且第一个参数必须是self,self代表当前对象, class Dog(object): def bark(self): #成员方法,第一个参数必须 ...
- python编程基础之十六
for in 循环,与其说是循环不如说精确点交遍历 for 变量名 in + 迭代对象 语句A else: 语句B 作用:一次访问迭代对象中的元素并赋值给变量 循环终止时,执行else语句块,如果br ...
- VS2010/MFC编程入门之三十六(工具栏:工具栏资源及CToolBar类)
上一节中鸡啄米讲了菜单及CMenu类的使用,这一节讲与菜单有密切联系的工具栏. 工具栏简介 工具栏一般位于主框架窗口的上部,菜单栏的下方,由一些带图片的按钮组成.当用户用鼠标单击工具栏上某个按钮时,程 ...
- python编程基础之三十七
数据的持久化:数据持久化就是将内存中的对象转换为存储模型,以及将存储模型转换为内存中的对象的统称. 对象可以是任何数据结构或对象模型,存储模型可以是关系模型.XML.二进制流等 Python的数据持久 ...
- python编程基础之三
变量 变量定义:变量名 = 值 #不需要给定变量类型 变量命名规范:也就是标识符的命名规则, 1.由数字,字母,下划线组成,不允许数字开头 2.区分大小写 3.不能是系统保留字(keyword) 获 ...
随机推荐
- HTML图片死活不显示
图片不显示: 1.路径 2.名称 3.少写了" ... " 正确的例子:“../images/dd.png” 4.多写了一个“/” ,或者少写了一个“ . ” ,没错.不是三个点, ...
- 阿里巴巴资深技术专家雷卷:值得开发者关注的 Java 8 后时代的语言特性
作者 | 阿里巴巴资深技术专家 雷卷,GitHub ID @linux-china 导读:在 Python.JavaScript 等一众编程语言崛起风靡之际,一代霸主 Java 风采虽不及当年,但仍 ...
- Java并发包下的几个API
并发包 (计数器)CountDownLatch (屏障)CyclicBarrier (计数信号量)Semaphore 案例: 需求: 代码: 并发包 (计数器)CountDownLatch Coun ...
- Salesforce LWC学习(七) Navigation & Toast
上一篇我们介绍了针对LWC中常用的LDS的适配的wire service以及@salesforce模块提供的相关的service,其实LWC中还提供其他的好用的service,比如针对导航相关的lig ...
- VUE Node模式下,如何改变菜单的颜色,如何将超长文字缩略显示,在鼠标进入后展开全部显示,鼠标移出则恢复缩略显示
VUE Node模式下,如何改变菜单的颜色,如何将超长文字缩略显示,在鼠标进入后展开全部显示,鼠标移出则恢复缩略显示: “事件”引起变量值的变化,系统引擎自动根据变量值的变化刷新页面 在VUE Nod ...
- js数组增删元素
操作数组的方法 push() 结尾添加 数组.push(元素) 参数 描述 newelement1 必需.要添加到数组的第一个元素. newelement2 可选.要添加到数组的第二个元素. newe ...
- golang开发:类库篇(五)go测试工具goconvey的使用
为什么要使用goconvey测试程序 goconvey 集成go test,go test 无缝接入.管理运行测试用例,而且提供了丰富的函数断言.非常友好的WEB界面,直观的查看测试结果. 如果没有g ...
- 【转载】pandas中的循环
原始文章链接: https://towardsdatascience.com/how-to-make-your-pandas-loop-71-803-times-faster-805030df4f06 ...
- 几道STL题目(FJUT - OJ STL训练1)
这个OJ一直在做,一些专题题目都很好,从易至难,阶梯上升,很适合像我这样的蒟蒻 =7= 这篇是关于其中一个专题训练的题解思路及代码 http://120.78.128.11/Contest.jsp ...
- String、StringBuffer、StringBulider的区别
1.线程安全性: 线程安全:String.StringBuffer 线程不安全:StringBulider 2.执行效率 StringBulider最快,Stringbuffer次之,String最差 ...