博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pyhon学习<文件操作>
阅读量:6423 次
发布时间:2019-06-23

本文共 1572 字,大约阅读时间需要 5 分钟。

我们要操作一个文件,一般分为以下步骤:

1.      找到文件

2.      打开文件

3.      操作文件

4.      关闭文件

打开的文件内存对象赋一个变量,后续通过变量找到这个文件内存对象,再去操作文件。

f = open("Dream",'r',encoding="utf-8")

赋给f的是一个内存对象,又把它称为文件句柄===其实就是这个文件的内存对象。

这句话的意思是:我们打开Dream文件,之所以加encoding =”utf-8”是因为在windows操作系统下默认文件的打开方式是gbk,而python默认的编码格式为utf-8,这样写的话即就是告诉程序打开文件的方式为utf-8。

data = f.read()

可以理解为对这个文件进行读操作,将读出来的内容赋给变量data

data2 = f.read()

 

print(data)

开始读的时候可以理解为指针停留在文件段落的第一行,读完之后指针停留在最后

print(data2)

再次读的时候指针会继续往下走,文件下面什么都没有,因此什么都读不到,后续会学习如何将指针移回来,重新读。

f = open("Dream",'w',encoding="utf-8")

这种写的方式意思是创建一个文件,如果文件原来有东西,会将原来的东西清空。格式:文件名.如果没有这个文件名,会创建此文件,w写模式,encoding="utf-8"打开文件的编码格式

f = open("Dream2",'w',encoding="utf-8")

创建一个文件,文件名为Dream2。

f.write("DREAM")

给文件Dream2中写DREAM。如果后续想操作这个文件的话,建议将其赋给一个变量即 

data = f.write("DREAM")

 

f.write(" I LOVE YOU")

这样继续写会和上面写的DREAM写到一行。想换行的话在上面DREAM后面加换行符即可:

 如果即想写,又想读。

f = open("DREAM",'a',encoding="utf-8")#append追加

不全部读取,写一次读一行,显然这是愚蠢的办法

f = open("yong man","r",encoding="utf-8")print(f.readline()print(f.readline(

 打印所有文件内容,下面这种方式打印出来的结果为列表形式

print(f.readlines()

 打印所有文件,以原文件格式显示

for line in f.readlines():    # print(line)#打印出来结果中间有一些空行,是因为我们每一个元素后面默认有一个\n,因此将它打印出来,直接换行。#不想换行的话:    #print(line.strip())#strip把空格和换行去掉

f.readlines()#只适合读小文件,大文件内存放不下。卡死。循环时,打印完一行,就不需要它了,为什么还要将它存在内存中,没有必要,怎么办呢?可不可以变成循环一行,删掉一行即内存中只保存一行,即便是很大的文件用这种办法处理也是没问题的,占空间小。

高级办法

 

for line in f:#这种办法其实是一行一行读,并且内存中只保存一行,效率最高    print(line.strip())

为什么这种办法能实现内存中只保存一行,这是因为这个文件f已经被变成了迭代器(牛逼),已经不是列表了,因此没有办法通过枚举的方式将其下标取出来,需要写计数器 :

 

count = 0for line in f:    count +=1    print(count,line.strip())

未完。。。

转载于:https://www.cnblogs.com/jb9527/p/10161233.html

你可能感兴趣的文章
1.基础知识
查看>>
【BZOJ】1602:[Usaco2008 Oct]牧场行走
查看>>
Python 数据类型
查看>>
Java-文件File简单实用
查看>>
php经典面试题
查看>>
harbor镜像仓库-01-搭建部署
查看>>
ASP.NET 5中的那些K
查看>>
解决SecureCRT连接linux终端中文显示乱码
查看>>
DBCC CHECKCATALOG 错误
查看>>
团队作业6
查看>>
【bzoj1044】木棍分割
查看>>
html的进一步了解(更新中···)
查看>>
mysql之select(一)
查看>>
python 之 进程池与线程池
查看>>
9、搜索 :ion-searchbar
查看>>
(转)winform下UPD通信的简单应用
查看>>
如何在vue-cli 3.x中使用jquery
查看>>
javascript 惰性载入函数
查看>>
Oracle VM VirtualBox 安装笔记
查看>>
HTML5的兼容性测试
查看>>