文件句柄:可简单理解为应该内存对象

open()函数  参考 https://www.runoob.com/python3/python3-file-methods.html

读、写、追加

 '''
txt文件内容:
I
am
very
handsome
'''
#读(mode = r)
f = open('test.txt','r',encoding='utf-8')
x = f.readline() #读取文件的一行,这时文件句柄移动到下一行的位置
x = f.readlines() #从文件句柄位置开始读取整个文件内容,并将每一行作为一个元素添加到一个列表
#当一个文件很大时readlines()是行不通的,他会把整个文件加载到内存,再执行后面的代码
#这回耗费很多时间和消耗大量的内存 # 可以用读一行打印一行的方式加快文件的读取
f.seek(0) #将文件句柄挪到文件的开始位置
for l in f:
print(l.strip(),end=' ')
#结果 I am very handsome #这个方法在一边读文件一边写文件是很有用的
#写(mode = w) 如果目标文件不存在会创建一个,但是如果存在的话会把原文件内容删除,慎用!!!
# 备份一个test.txt,名为test_bak.txt
f.seek(0)
f_w = open('test_bak.txt','w') #encoding 默认utf-8
for l in f:
f_w.write(l)
#完成备份
#追加 (mode = a)在原文件的后面追加内容,是不可读的,如果文件不存在会创建一个
f_a = open('test.txt','a')
f_a.write('lalala') #'lalala' 被添加到了test.txt的末尾
f_a.close()
f_w.close()
f.close()

读写、写读、追加读写

 '''
txt文件内容:
I
am
very
handsome
'''
#读写(mode = r+)
with open('test.txt','r+') as f_r_p,\
open('test_bak.txt','w+') as f_w_p,\
open('test_a.txt','a+') as f_a_p:
'''
用with语法可以省略最后的文件关闭操作,同时可以打开多个文件
1.w+,还是会将原文件内容删除然后在进行写读等操作,慎用!!!
2.r+,非常实用,但如果要对原文件直接更改是不行的,比如有'I am very handsome'这么一个
字符串,如果想把'I'改为'You',见下面代码21-24行,发现打印的结果还是'I',没有变为想要替换
的'You',因为在硬盘里的文件已经写死了,硬盘里的后面数据是不会随着前面的数据的变化而前
后挪动的,所以要修改文件可以采用复制的方法,就是在创建一个文件,并将修改的内容写入新的
文件。
'''
x = f_r_p.readline()
x.replace('I\n','You\n')
f_r_p.seek(0)
print(f_r_p.readline())
#将test.txt文件,第一行改为'You',并写入test_a.txt
f_r_p.seek(0)
for l in f_r_p:
print(l,end='')
if l=='I\n':
f_a_p.write('You\n')
else:
f_a_p.write(l)

二进制

 #二进制写(mode = wb)
with open('bin.txt','wb') as f_wb:
f_wb.write(b'i am bin')
#二进制读(mode = rb)
with open('bin.txt','rb') as f_rb:
print(f_rb.readline())

python 基础(文件)的更多相关文章

  1. python 基础-文件读写'r' 和 'rb'区别

    原文链接: python基础-文件读写'r' 和 'rb'区别 一.Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 1.文件使用方式标识 'r ...

  2. Python基础--文件操作和集合

    这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件file.txt: 我们哭了 ...

  3. python基础--文件操作实现全文或单行替换

    python修改文件时,使用w模式会将原本的文件清空/覆盖.可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开. 替换文本中的taste 为 tasting Yesterday whe ...

  4. python基础-文件操作

    一.文件操作 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r ,只读模式[默认模式,文件必须存在,不存在则抛出异 ...

  5. python基础 - 文件读写

    完成功能: 从指定位置读文件到控制台 #! /usr/bin/python # coding=utf- 方法一. try: f = open ('/root/python/file/001.txt', ...

  6. python基础-文件操作(10)

    一.什么是文件 等等这些都叫做文件,各种格式的.但不仅仅限制于这些. 二.文件的作用 大家应该听说过一句话:“好记性不如烂笔头”. 不仅人的大脑会遗忘事情,计算机也会如此,比如一个程序在运行过程中用了 ...

  7. 第3章 Python基础-文件操作&函数 文件操作 练习题

    一.利用b模式,编写一个cp工具,要求如下: 1. 既可以拷贝文本又可以拷贝视频,图片等文件 2. 用户一旦参数错误,打印命令的正确使用方法,如usage: cp source_file target ...

  8. python基础----文件处理

    一.文件处理流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 正趣果上果 Interesting fruit fruit 词:郭婞 曲:陈粒 编曲/混音/和声:燕池 萧: ...

  9. python基础-文件处理与函数

    1. 文件处理 1.1 文件处理流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 1.2 文件读取模式r r文本模式的读,在文件不存在,不会创建新文件 f = ...

  10. Python基础——文件操作

    写文件 writefile %%writefile ./data/testFile.txt hello python jin tian tian qi bu cuo open覆盖 txt=open(' ...

随机推荐

  1. 使用gdb调试段错误

    [https://blog.csdn.net/xj9120/article/details/91380074] 1.bt 2.frame number 3.一般是内存问题 4.kill

  2. springboot(1)@SpringBootApplication

    首先来看下Spring Boot项目中的运行类,基本上每个项目都会有该启动类: @SpringBootApplication public class Application { public sta ...

  3. 内存映射文件MappedByteBuffer和Buffer的Scattering与Gathering

    上一篇讲到的DirectByteBuffer继承自MappedByteBuffer 一.MappedByteBuffer MappedByteBuffer的定义: A direct byte buff ...

  4. vue项目 既能通过ip访问项目,又可以本地localhost访问

    1.场景问题: 有时候开发过程中,vue项目需要其他同事能访问你本地进行调试,而不是需要重新拉取代码来启动很麻烦 2.解决思路: 一. package.json"dev": &qu ...

  5. HSBImageView--android--可以设置HSB值的imageview

    package guide.yunji.com.guide.view; import android.content.Context; import android.content.res.Typed ...

  6. paddlepaddle如何预加载embedding向量

    使用小批量数据时,模型容易过拟合,所以需要对全量数据进行处理,我是用的是word2vec训练的词向量. 那么训练好对词向量如何加载呢? #!/usr/bin/env python # -*- codi ...

  7. Xamarin图表开发基础教程(13)OxyPlot框架支持的其它图表

    Xamarin图表开发基础教程(13)OxyPlot框架支持的其它图表 除了以上提到的图表外,OxyPlot组件还包含了6种类型的其它图表,分别为等高线图.箱线图.饼图.热图.散点图和散点误差图,如图 ...

  8. docker配置阿里云的仓库源以及安装docker-compose

    [root@localhost mnt]# cat /etc/docker/daemon.json { "registry-mirrors": ["https://3la ...

  9. 【Git】PHP项目自动化部署的注意事项

    直接开始 1 服务器克隆项目 git clone git@*****.com/project.git 2 更改所有者 chown www:www /www/wwwroot/project/* -R 3 ...

  10. BottomTabNavigator 顶部导航的显示隐藏

    const TabNavigator = createBottomTabNavigator({ ...模块, ...模块, },{ navigationOptions:{ header:null }