python中,如何打开文件( ),python中打开文件的方法

大家好,本文将围绕python中,如何打开文件( )展开说明,python中打开文件的方法是一个很多人都想弄明白的事情,想搞清楚python中怎样打开文件需要先了解以下几个事情。

文件操作

一 介绍

计算机系统分为:计算机硬件,操作系统,应用程序三部分。

我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序是无法直接操作硬件的,这就用到了操作系统神码ai火车头采集器伪原创。操作系统把复杂的硬件操作封装成简单的接口给用户/应用程序使用,其中文件就是操作系统提供给应用程序来操作硬盘虚拟概念,用户或应用程序通过操作文件,可以将自己的数据永久保存下来。

有了文件的概念,我们无需再去考虑操作硬盘的细节,只需要关注操作文件的流程:

#1. 打开文件,得到文件句柄并赋值给一个变量#2. 通过句柄对文件进行操作#3. 关闭文件

二 在python中

48304ba5e6f9fe08f3fa1abda7d326ab.png

#1. 打开文件,得到文件句柄并赋值给一个变量

f=open('a.txt','r',encoding='utf-8') #默认打开模式就为r

#2. 通过句柄对文件进行操作

data=f.read()#3. 关闭文件

f.close()

48304ba5e6f9fe08f3fa1abda7d326ab.png

三 f=open('a.txt','r')的过程分析

#1、由应用程序向操作系统发起系统调用open(...)

#2、操作系统打开该文件,并返回一个文件句柄给应用程序

#3、应用程序将文件句柄赋值给变量f

四 强调!!!

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#强调第一点:

打开一个文件包含两部分资源:操作系统级打开的文件+应用程序的变量。在操作完毕一个文件时,必须把与该文件的这两部分资源一个不落地回收,回收方法为:1、f.close() #回收操作系统级打开的文件

2、del f #回收应用程序级的变量

其中del f一定要发生在f.close()之后,否则就会导致操作系统打开的文件还没有关闭,白白占用资源,

而python自动的垃圾回收机制决定了我们无需考虑del f,这就要求我们,在操作完毕文件后,一定要记住f.close()

虽然我这么说,但是很多同学还是会很不要脸地忘记f.close(),对于这些不长脑子的同学,我们推荐傻瓜式操作方式:使用with关键字来帮我们管理上下文

with open('a.txt','w') as f:passwith open('a.txt','r') as read_f,open('b.txt','w') as write_f:

data=read_f.read()

write_f.write(data)

强调第一点:资源回收

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#强调第二点:

f=open(...)是由操作系统打开文件,那么如果我们没有为open指定编码,那么打开文件的默认编码很明显是操作系统说了算了,操作系统会用自己的默认编码去打开文件,在windows下是gbk,在linux下是utf-8。

这就用到了上节课讲的字符编码的知识:若要保证不乱码,文件以什么方式存的,就要以什么方式打开。

f=open('a.txt','r',encoding='utf-8')

强调第二点:字符编码

五 python2中的file与open

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#首先在python3中操作文件只有一种选择,那就是open()

#而在python2中则有两种方式:file()与open()

两者都能够打开文件,对文件进行操作,也具有相似的用法和参数,但是,这两种文件打开方式有本质的区别,file为文件类,用file()来打开文件,相当于这是在构造文件类,而用open()打开文件,是用python的内建函数来操作,我们一般使用open()打开文件进行操作,而用file当做一个类型,比如type(f) is file

View Code

打开文件的模式

文件句柄 = open('文件路径', '模式')

模式可以是以下方式以及他们之间的组合:

Character

Meaning

‘r'

open for reading (default)

‘w'

open for writing, truncating the file first

‘a'

open for writing, appending to the end of the file if it exists

‘b'

binary mode

‘t'

text mode (default)

‘+'

open a disk file for updating (reading and writing)

‘U'

universal newline mode (for backwards compatibility; should not be used in new code)

48304ba5e6f9fe08f3fa1abda7d326ab.png

#1. 打开文件的模式有(默认为文本模式):

r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】

w,只写模式【不可读;不存在则创建;存在则清空内容】

a, 之追加写模式【不可读;不存在则创建;存在则只追加内容】#2. 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式)

rb

wb

ab

注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码#3. 了解部分

"+"表示可以同时读写某个文件

r+, 读写【可读,可写】

w+,写读【可读,可写】

a+, 写读【可读,可写】

x, 只写模式【不可读;不存在则创建,存在则报错】

x+,写读【可读,可写】

xb

48304ba5e6f9fe08f3fa1abda7d326ab.png

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

#回车与换行的来龙去脉

http://www.cnblogs.com/linhaifeng/articles/8477592.html#U模式

'U' mode is deprecated and will raise an exception infuture versions

of Python. It has no effectin Python 3. Use newline to control

universal newlines mode.#总结:

在python3中使用默认的newline=None即可,换行符无论何种平台统一用\n即可

了解U模式与换行符

操作文件的方法

48304ba5e6f9fe08f3fa1abda7d326ab.png

#掌握

f.read() #读取所有内容,光标移动到文件末尾

f.readline() #读取一行内容,光标移动到第二行首部

f.readlines() #读取每一行内容,存放于列表中

f.write('1111\n222\n') #针对文本模式的写,需要自己写换行符

f.write('1111\n222\n'.encode('utf-8')) #针对b模式的写,需要自己写换行符

f.writelines(['333\n','444\n']) #文件模式

f.writelines([bytes('333\n',encoding='utf-8'),'444\n'.encode('utf-8')]) #b模式

#了解

f.readable() #文件是否可读

f.writable() #文件是否可读

f.closed #文件是否关闭

f.encoding #如果文件打开模式为b,则没有该属性

f.flush() #立刻将文件内容从内存刷到硬盘

f.name

48304ba5e6f9fe08f3fa1abda7d326ab.png

练习,利用b模式,编写一个cp工具,要求如下:

1. 既可以拷贝文本又可以拷贝视频,图片等文件

2. 用户一旦参数错误,打印命令的正确使用方法,如usage: cp source_file target_file

提示:可以用import sys,然后用sys.argv获取脚本后面跟的参数

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

importsysif len(sys.argv) != 3:print('usage: cp source_file target_file')

sys.exit()

source_file,target_file=sys.argv[1],sys.argv[2]

with open(source_file,'rb') as read_f,open(target_file,'wb') as write_f:for line inread_f:

write_f.write(line)

View Code

文件内光标移动

一: read(3):

1. 文件打开方式为文本模式时,代表读取3个字符

2. 文件打开方式为b模式时,代表读取3个字节

二: 其余的文件内光标移动都是以字节为单位如seek,tell,truncate

注意:

1. seek有三种移动方式0,1,2,其中1和2必须在b模式下进行,但无论哪种模式,都是以bytes为单位移动的

2. truncate是截断文件,所以文件的打开方式必须可写,但是不能用w或w+等方式打开,因为那样直接清空文件了,所以truncate要在r+或a或a+等模式下测试效果

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

importtime

with open('test.txt','rb') as f:

f.seek(0,2)whileTrue:

line=f.readline()ifline:print(line.decode('utf-8'))else:

time.sleep(0.2)

练习:基于seek实现tail -f功能

文件的修改

文件的数据是存放于硬盘上的,因而只存在覆盖、不存在修改这么一说,我们平时看到的修改文件,都是模拟出来的效果,具体的说有两种实现方式:

方式一:将硬盘存放的该文件的内容全部加载到内存,在内存中是可以修改的,修改完毕后,再由内存覆盖到硬盘(word,vim,nodpad++等编辑器)

48304ba5e6f9fe08f3fa1abda7d326ab.png

importos

with open('a.txt') as read_f,open('.a.txt.swap','w') as write_f:

data=read_f.read() #全部读入内存,如果文件很大,会很卡

data=data.replace('alex','SB') #在内存中完成修改

write_f.write(data)#一次性写入新文件

os.remove('a.txt')

os.rename('.a.txt.swap','a.txt')

48304ba5e6f9fe08f3fa1abda7d326ab.png

方式二:将硬盘存放的该文件的内容一行一行地读入内存,修改完毕就写入新文件,最后用新文件覆盖源文件

48304ba5e6f9fe08f3fa1abda7d326ab.png

importos

with open('a.txt') as read_f,open('.a.txt.swap','w') as write_f:for line inread_f:

line=line.replace('alex','SB')

write_f.write(line)

os.remove('a.txt')

os.rename('.a.txt.swap','a.txt')

48304ba5e6f9fe08f3fa1abda7d326ab.png

练习题:

48304ba5e6f9fe08f3fa1abda7d326ab.png

1. 文件a.txt内容:每一行内容分别为商品名字,价钱,个数,求出本次购物花费的总钱数

apple10 3tesla100000 1mac3000 2lenovo30000 3chicken10 3

2. 修改文件内容,把文件中的alex都替换成SB

48304ba5e6f9fe08f3fa1abda7d326ab.png

小狗AI
关注 关注
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
python2打开文件_Python基本语法 打开文件
weixin_42361764的博客
01-29 592
打开文件的操作数据是写在文件里面的,open file 可以实现 读取数据 写入数据一般的文件操作步骤:先打开文件读取文件数据写入数据关闭文件注意:文件打开后,最后一定要记得关闭文件,否则会引起很多问题1.打开文件,使用的方法为open() 内置函数f=open('文件名称/文件路径')2.读取文件:f.read() 就可以读取文件所有数据(读取的数据类型为字符串)读取的方法有:mode...
python打开dat文件_python对文件的操作
weixin_39666782的博客
11-26 4514
"""在变量,序列(这里的序列其实就是元组,列表,字符串,集合,字典)和对象存储的数据是暂时的,程序结束就会丢失。为了能够长世界地保存程序的数据,需要将程序的数据保存到磁盘文件长。python提供了内置的文件对象,目录操作的内置模块在python,内置了文件(File)对象。在使用文件对象时,首先需要通过内置的open()方法创建一个文本对象,然后通过该对象提供的方法提供的方法进行一些基本...
python 怎么打开文件
weixin_35755640的博客
12-20 3590
Python 打开文件可以使用内置的 open 函数。 例如,你可以使用如下代码来打开一个文本文件并读取其内容: with open('filename.txt', 'r') as f: content = f.read() 在这里,'r' 表示以只读模式打开文件。如果你希望以写入模式打开文件,可以使用 'w' 或 'a' 参数。 使用 with 关键字可以确保文件在使用完后被关闭...
python 怎么打开txt
最新发布
weixin_35340730的博客
06-30 117
Python相关视频讲解:python的or运算赋值用法用python编程Excel有没有用处?011_编程到底好玩在哪?查看python文件_输出py文件_cat_运行python文件_shel如何使用Python打开并读取txt文件 在日常工作,我们经常需要读取和处理文本文件。Python是一种流行的编程语言,...
python打开文件
热门推荐
hbzyqdyn的博客
05-21 2万+
* open():open(file, mode='r', buffering=- 1, encoding=None, errors=None, newline=None, closefd=True, opener=None),返回值为一个文件对象。 **常规方式**: 1.打开文件 ```python f = open( '/Users/michael/test.txt', 'r' ) //打开文件。r 表示读取文件,我们就成功地打开了一个文件。 //但是, 如果文件不存在,open()函数就会抛
python,如何打开文件( ),在python如何打开文件
2301_81900386的博客
02-21 4649
readlines:一次性将文件全部读取,读取后,将文字以一行为一个元素保存到列表当进行返回。
Python文件处理之文件打开方式(一)
diwen7957的博客
06-19 288
Python打开一个文件是同过open函数来打开的,并返回一个文件对象,以下为open函数的参数: open(name[, mode[buf]]) name:文件路径 mode:打开方式 buf:缓冲大小 open根据你提供的name、mode、buf来打开一个文件并返回文件对象,如果只填写name,mode则默认为只读方式,buf则默认为-1,以下为open的一些mo...
python以只读形式打开文件的模式是_详解python各种文件打开模式
weixin_39664998的博客
12-21 1万+
python,总的来说有三种大的模式打开文件,分别是:a, w, r当以a模式打开时,只能写文件,而且是在文件末尾添加内容。当以a+模式打开时,可以写文件,也可读文件,可是在读文件的时候,会发现读出来的数据为空,是因为a+模式是在文件末尾添加内容,所以其指针已经指到了文件末尾,所以读出来的数据就是空的。# 在文件末尾添加数据f = open('test.txt','a+')f.write('t...
python打开c盘文件_python基础-文件操作
weixin_36296215的博客
01-29 3257
我们更推荐⼤家使⽤相对路径. 因为在我们把程序拷⻉给别⼈使⽤的时候. 直接把项⽬拷⻉走就能运行.但是如果⽤绝对路径. 那还需要拷⻉外部的⽂件读取⽂件的⽅法:1. read() 将⽂件的内容全部读取出来. 弊端: 占内存. 如果⽂件过⼤大.容易导致内存崩溃2. read(n) 读取n个字符. 需要注意的是. 如果再次读取. 那么会在当前位置继续去读⽽不是从头读, 如果使⽤的是rb模式. 则读取出来...
Python——文件打开模式
陌上人如玉,公子世无双。
07-18 1万+
目录 2.1、文件打开模式 2.1.1、只读模式打开文件——只读(r) 2.1.2、读写模式打开文件——读写模式(r+) ​ 2.1.3、写模式打开文件——写模式(w) 2.1.4、读写模式打开文件——读写模式(w+) 2.1.5、写模式打开文件(追加内容)——写模式(a) 2.1.6、读写模式打开文件(追加内容)——读写模式(a) 关于文件打开模式可以参考下表:(表格来源于:菜鸟教程) 模式 描述 t 文本模式 (默认)。 x 写模式,新建一个文件,如果该文件
python怎么打开h5文件_h5文件python
weixin_39620278的博客
11-29 4782
广告关闭腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!腾讯云 api 全新升级3.0 ,该版本进行了性能优化且全地域部署、支持就近和按地域接入、访问时延下降显著,接口描述更加详细、错误码描述更加全面、sdk 增加接口级注释,让您更加方便快捷的使用腾讯云产品。 这里针对 python api 调用方式进行简单说明。 现已支持云服务器(cv...
python打开文件_Python文件打开模式
weixin_39765588的博客
11-14 373
Python 内置函数 Python 内置函数python open() 函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写。函数语法open(name[, mode[, buffering]])参数说明name : 一个包含了你要访问的文件名称的字符串值。mode : mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默...
python打开文件的用法,python文件的打开
K12345611717的博客
03-09 3295
大家好,小编来为大家解答以下问题,python打开文件的用法,python文件的打开,今天让我们一起来看看吧!文件打开模式有很多,但是我们实际用到的就只有六种。我们总结一下主要用到的是下面六种。下面我们用例子来看,怎么写。
python如何打开文件,在python怎么打开文件
S1112_的博客
12-22 491
同时还有界面简洁,运行快速等优势。我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频老师的思路,从基础到深入,还是很容易入门的。最后祝大家天天进步!
Python的文件打开读取
Tthem的博客
06-07 349
文件处理是任何Web应用程序的重要组成部分,Python也不例外,本文介绍了Python文件处理的一些基本操作. 1. open("name",<model>)函数 在Pytho使用文件的关键函数是open()函数, 第一个参数name表示文件名, 后者则是模式,有四种打开文件的不同方法: 文件的打开模式 作用 描述 "r" 读取 打开文件进行读取,如果文件不存在就会报错 "a" 追加 打开供追加的文件,如果不存在的创建该文件 "w" ..
Python】文件的打开方式
yeluoyeqiushui的博客
04-19 1694
Python打开操作文件,实质是建立文件到Python程序的映射,然后在程序对映射内容进行操作,最后将映射同步到文件的过程。
python 启动外部程序_python执行外部程序的常用方法小结
weixin_39946355的博客
11-22 323
本文实例总结了python执行外部程序的常用方法。分享给大家供大家参考。具体分析如下:在python我们可以通过下面的方法直接调用系统命令或者外部程序,使用方便1、os模块的execl方法Python的execl系统方法同Unix的exec系统调用是一致的。这些方法适用于在子进程调用外部程序的情况,因为外部程序会替换当前进程的代码,不会返回。也就是说,这个shell进程被占领,将执行第一个ex...
python文件的打开
SinGaln的博客
11-21 1185
with open('pi_digtal.txt') as file_object: contents = file_object.read() print(contents.rstrip())#rstrip()删除字符串末尾的空格注:打开的文件实际存在
测开2 - Python(文件操作)
weixin_30312659的博客
05-29 71
把第一次写好漏掉的点写在最前面:文件读写的内容都要求是字符串。 几种文件操作的模式: 1. 'r',读模式(默认模式),只能读不能写,文件不存在时报错 2. 'w',写模式,只能写不能读,文件不存在时会创建,但是存在时会先清空原文件内容 3.'a',追加模式,增加新内容,不存在时会创建,但不能读 4.'r+',读写模式,能写能读,但文件不存在时会报错 5.'w+',写读模式,...
C# 使用 IronPython 打开并执行 Python 文件
这样,你就成功地在C#打开了并执行了一个Python文件,实现了跨语言的交互。 通过这种方式,C#可以利用IronPython库无缝地调用Python代码,实现功能扩展或者利用Python的特定库。这种方法对于需要在.NET环境集成...
1875
原创
1万+
点赞
1万+
收藏
8814
粉丝
关注
私信
写文章

热门文章

  • python编程游戏代码大全,python简单的小游戏代码 16772
  • python编写小游戏详细教程,用python做简单的小游戏 8101
  • python设计实验报告 5979
  • python在财务分析中的应用,用python做财务数据分析 4955
  • python如何打出自己的名字,怎么用python写自己名字 4879

分类专栏

  • 降低AI辅写 3篇
  • 降低AI查询率 3篇
  • 论文 5篇
  • 智能写作 14篇
  • 软件 2篇
  • 人工智能 6篇

最新评论

  • js与python哪个功能更强大,javascript与python性能对比

    lovelili1: 连java和JavaScript都分不清

  • 论文如何降低AIGC【有效方法】

    Cheng285: 省流,要花200开会员

  • python 贪吃蛇小游戏代码,python贪吃蛇最简单代码

    苦瓜想干飞日本: 我的贪吃蛇代码比你简单,你有2208字节,我才1742字节

  • javascript设计网页作品,javascript网站设计

    小王毕业啦: 博主的文章让我对Javascript设计网页作品这个主题有了全新的认识,细节描写非常到位,让我感受到了博主的深厚功底。期待博主未来能够持续分享更多好文,同时也希望能够得到博主的指导,共同进步。非常感谢博主的分享和支持!文章内容很有价值,让人受益匪浅。愿意持续关注博主的分享,期待更多精彩内容。

  • python编程常用英语词汇,python编程语言单词

    初源代码: 真好,标了音标就是好!照顾小白了

最新文章

  • python下载到哪个盘比较好,python下载后找不到路径
  • python官网下载安装免费,python官方中文文档下载
  • python微信小程序自动打卡,python微信小程序打卡
2024
04月 13篇
03月 205篇
02月 128篇
01月 371篇
2023年1159篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家玻璃钢雕塑价格每平米肇庆园林玻璃钢人物雕塑寺庙玻璃钢佛像雕塑价格四川户内玻璃钢雕塑生产厂家安徽玻璃钢动物雕塑制作工厂玻璃钢做的柜子雕塑玻璃钢花盆雕塑那个比较好陕西户外玻璃钢雕塑定制舟山公园玻璃钢雕塑供应商个旧市玻璃钢雕塑供应商成都步行街玻璃钢雕塑济南商场美陈研发公司吉林玻璃钢卡通动物雕塑制作工厂玻璃钢雕塑制品大全玻璃钢书本雕塑邳州美陈商场布置武汉特色玻璃钢雕塑哪家便宜江西玻璃钢鹿雕塑玻璃钢拳头雕塑园林玻璃钢雕塑口碑好上饶人物玻璃钢雕塑多少钱清远玻璃钢楼盘景观雕塑摆件玻璃钢雕塑摆放图片方钜艺术玻璃钢雕塑的应用特点宁河玻璃钢雕塑公司玻璃钢雕塑口碑成都抽象玻璃钢雕塑定制烟台玻璃钢海豚雕塑定制开封景观玻璃钢景观雕塑生产玻璃钢雕塑工厂价格香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化