一、打开文件、关闭文件操作

想要读取文件或是写入文件,第一步便是打开文件,最后一步便是关闭文件。这里介绍两种打开(关闭)文件的方式:

1、open()方法
f=open(file_name[,access_mode][,buffering])
f=close()

其中,file_name代表文件名,若文件在同一路径下直接输入文件名+后缀,不在同一路径下则写出具体路径;access_mode代表打开文件的方式,默认为r只读模式;buffering代表寄存。

文件的打开方式有如下几种:

r:只读模式

w:用新内容覆盖原文件内容,当文件不存在时,该方式会自动创建文件

a:在原文件中继续写入数据

r+可读可写

w+:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

rb wb ab 读写二进制

若想向文本中写入数据,更改代码如下:

f=open("seed.txt","w")
f=close()

需要注意的是,open()方法必须和close()一起使用,打开文件使用完毕后一定要关闭文件。

2、with open() as方法
with open("seed.txt","r",encoding="utf-8"):    #encoding为编码格式,此处为utf8格式
...... #文件操作

该方法会自动关闭文件,以防止出现操作复杂,编写时间久导致遗落文件关闭步骤的情况,个人更推荐在使用文本时使用该方法操作。

二、读取文件操作

1、read()
  读取文件所有内容,以字符串形式返回。

with open('seed.txt','r',encoding='utf-8') as f:
print(f.read())

2、readline()
  读取文件中的一行,读取后,文件指针自动移至下一行开头,以字符串形式返回。

with open('seed.txt','r',encoding='utf-8') as f:
print(f.readline())

 
3、readlines()
  读取文件的每一行,以列表形式返回。
  这个函数是以内部循环调用readline()方法实现的。
with open('seed.txt','r',encoding='utf-8') as f:
for i in f.readlines():
print(i,end='')
print()
print(type(f.readlines()))

三、常规写入文件操作

1、write(str)

  将str写入文件中,默认不换行,换行需手动添加‘\n’。

  添加换行符‘\n’:

s='abcd\nefgh'
with open('seed.txt','w+',encoding='utf-8') as f:
f.write(s) with open('seed.txt','r',encoding='utf-8') as f:
for i in f.readlines():
print(i,end='')
print()

  不添加换行符:

s='abcdefgh'
with open('seed.txt','w+',encoding='utf-8') as f:
f.write(s) with open('seed.txt','r',encoding='utf-8') as f:
for i in f.readlines():
print(i,end='')
print()

2、writelines(seq)

  将seq(序列)中的数据多行一次写入文件中,不会自动换行,需手动添加换行符。

  手动添加换行符‘\n’:

s=['abc\ndef']
with open('seed.txt','w+',encoding='utf-8') as f:
f.writelines(s) with open('seed.txt','r',encoding='utf-8') as f:
for i in f.readlines():
print(i,end='')
print()

  不添加换行符:

s=['abcdef','qwe']
with open('seed.txt','w+',encoding='utf-8') as f:
f.writelines(s) with open('seed.txt','r',encoding='utf-8') as f:
for i in f.readlines():
print(i,end='')
print()

四、指定读取写入文件操作

1、seek(size)

  文件指针指向size字节处,并从此处读取或写入数据。

  写入数据:

s='abcdefgh'
b=''
with open('seed.txt','w+',encoding='utf-8') as f:
f.write(s)
f.seek(3)
f.write(b) with open('seed.txt','r',encoding='utf-8') as f:
print(f.readline())
print()

  

  读取数据(文件接上一个例子):

with open('seed.txt','r',encoding='utf-8') as f:
f.seek(2)
print(f.readline())
f.seek(0)
print(f.readline())
f.seek(6)
print(f.readline())

Python文件的读取写入操作的更多相关文章

  1. python 文件的读取&更新

    [python 文件的读取&更新] 任务抽象: 读取一个文件, 更新内容后, 重新写入文件. 实际应用: 磁盘上的一个配置文件, 读入内存后为一个dict, 对dict更新后重新写入磁盘. d ...

  2. c文件二进制读取写入文件、c语言实现二进制(01)转化成txt格式文本、c读取文件名可变

    c语言实现二进制(01)转化成txt格式文本: 下面的程序只能实现ascall对应字符转换,如果文件内出现中文字符,则会出现错误. 本程序要自己创建个文本格式的输入文件a1.txt,编译后能将文本文件 ...

  3. [Python] python3 文件操作:从键盘输入、打开关闭文件、读取写入文件、重命名与删除文件等

    1.从键盘输入 Python 2有两个内置的函数用于从标准输入读取数据,默认情况下来自键盘.这两个函数分别是:input()和raw_input(). Python 3中,不建议使用raw_input ...

  4. [Python学习笔记]文件的读取写入

    文件与文件路径 路径合成 os.path.join() 在Windows上,路径中以倒斜杠作为文件夹之间的分隔符,Linux或OS X中则是正斜杠.如果想要程序正确运行于所有操作系统上,就必须要处理这 ...

  5. Python 文件的读取与写入

    1. 读取文件,文件中没有中文 备注 : 文件名 : EnglishFile.txt 文件位置 : 保存在所写的.py文件的同级目录,附上截图,便于参考 备注 : 文件位置可以改变,只需要把文件路径传 ...

  6. php操作文件(读取写入文件)

    一,PHP如何读取文件 PHP读取文件可以读取当前服务器或远程服务器中的文件.其步骤是:打开文件.读文件和关闭文件. 1,PHP如何打开文件 使用PHP函数fopen()打开一个文件,fopen()一 ...

  7. python第二十九课——文件读写(读取数据操作)

    演示读取数据操作:path=r'a.txt' 1.打开文件f1=open(path,'r') 2.读取数据content1=f1.read(3)print(content1) content1=f1. ...

  8. python文件对象几种操作模式区别——文件操作方法详解

    文件对象的字节模式/b模式(以utf-8编码为例) 读操作 写操作 指针操作 ASCII字节 返回bytes/字节类型的Ascii 写入bytes类型字节 例如:b'This is ascii' 使用 ...

  9. python文件_读取

    1.文件的读取和显示 方法1: f=open(r'G:\2.txt') print f.read() f.close() 方法2: try: t=open(r'G:\2.txt') print t.r ...

随机推荐

  1. mage Ansible学习3 ansible role实例

    一.ansible配置文件解析 1./etc/ansible/ansible.cfg配置文件详解 [root@node3 ~]# cat /etc/ansible/ansible.cfg |grep ...

  2. .net大文件分块上传断点续传demo

    IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头. 一. 两个必要响应头Accept-Ranges.ETag 客户端每次提交下载请求时,服务 ...

  3. 洛谷 P1086 花生采摘 题解

    P1086 花生采摘 题目描述 鲁宾逊先生有一只宠物猴,名叫多多.这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:"欢迎免费品尝我种的花生!――熊字". ...

  4. 原创:C++实现的可排序的双向链表

    学习C++有一周了,今天用C++设计了一个双向链表,这个链表有排序功能,默认按升序排列,接受的参数可以是数字,也可以是字符串.现在把自己写的代码,分享出来.如果链表中接受的对象为Lexeme,可以用于 ...

  5. 浅析python-socket编程

    1. 什么是socket? socket是套接字的英文名称, 我们知道在TCP/IP协议簇体系中,将网络状态分为了应用层.传输层.网络层.物理层等四种状态,而socket是与传输层密切相关的,其主要实 ...

  6. LArea插件选中城市,确定之后又很难再次选择城市?

    加上fastclick.js这个js就能解决这个问题啦...... 详情:http://blog.csdn.net/zfy865628361/article/details/49512095

  7. Git的使用(6) —— 自动填写远端Git用户名密码

    1. 问题描述 公司项目组用私服的Git远程版本库,每一次推送和拉取服务都需要输入用户名和密码,过于繁琐. 2. 解决方法 Windows系统提供了"管理Windows凭据"的功能 ...

  8. Docker的学习(一)Windows下安装docker环境以及基础的配置

    Docker是什么我这里就不多做介绍了,相信大家都清楚,网上有很多介绍的文章所以作为菜鸟的我就不用我的眼光以及理解来为大家介绍了,还是那句话,这篇文章主要是用作记录学习过程,希望不会误导新人,也希望各 ...

  9. 全新的Unity跨平台开发 IDE JetBrains Rider 2019.2 x64特别版下载

    Rider 基于 JetBrains 的平台,JetBrains 的平台很受那些使用 IntelliJ IDEA 的 Java 开发者和使用 WebStorm 的 JavaScript 开发者的欢迎. ...

  10. frp ssh反向代理配置使用

    本质是一个内网反向代理工具,需要一个vps配合,因为要外网ip. 主页: https://github.com/fatedier/frp 1.服务端(VPS) 可以用下面的一键安装脚本,也可以用主页上 ...