Python基础——读写文件

本文详细介绍了Python中文件操作的方法,包括文件的打开、关闭、创建、读取、写入等基本操作,以及如何处理文件读写过程中的编码问题。通过具体示例展示了不同场景下文件操作的应用。

      文件是操作系统管理和存储数据的一种方式。

      Python内置了  open() 函数来打开文件,并创建一个文件对象。

一、打开文件:open 函数

1、open 函数基本格式:

      myfile = open(filename,[mode])  

      意思是: myfile 为引用文件对象的变量;filename 为文件名,可以是文件的绝对路径;

                    mode 为文件读写模式。

2、mode读写模式包含: w  a  r  b +  

     w:写文件,创建新文件。若文件已存在,则覆盖源文件。

     a :  以追加的方式写文件。若文件已存在,写入的数据默认添加到文件尾;文件不存在,则创建新文件。

     r :  读文件。当mode为空时,默认为读文件。

     + : 用在模式末尾,表示文件打开后可以同时进行读、写操作。例如 w+   r+

     b : 需要与 a  b  r 组合使用,用于读写二进制文件。

3、以不同mode打开文件示例

     164333_mWvx_3821557.png

二、关闭文件:close()

      close() 函数基本格式:    myfile.close()

三、创建文件、写入文件、读取文件。其中 EOF 表示文件的结束符。

1、创建文件并写入内容

      162425_e4zY_3821557.png

      运行结果:

      160810_wsTx_3821557.png

2、读取文件内容

     163556_ezVZ_3821557.png

     运行结果:

     163340_Gwqh_3821557.png

四、文件的读写方法

1、文件读写方法:

     f.read()         把整个文件内容读作一个字符串(最常用)

     f.readline()   把一行内容读入一个字符串

     f.readlines()  把整个文件内容读入一个字符串列表,每一行作为一个字符串。

     f.write         将字符串写入文件

     f.writelines()   将列表写入文件       

2、文件属性

     f.name      文件名

     f.closed     文件是否关闭(返回值为布尔型)

     f.mode      文件读取模式

     f.encoding      文件编码格式(一般都是  utf-8 )建议在读写之前定义编码格式,避免乱码。

    示例:182426_Awrl_3821557.png

    结果:182451_ba3K_3821557.png

3、with 的用法

     一般在打开文件之后都需要关闭;但是经常会忘记关闭,由此而产生  with

    示例:

    183330_eUwt_3821557.png

    183204_LUBq_3821557.png

五、Python 2 乱码问题 (Python 2  版本)

1、编码

     支持中文的编码,常用的国际编码为: utf-8   gbk   gbk2312

     decode   编码     

     encode   解码

2、乱码示例  及  解决方案 (运行环境:pycharm )

     在Python 2 中如果删除掉图中编码信息,则运行时会报错。提示编码出了问题,Python 2 默认将代码内容当做 ASCII 编码处理,但 ASCII 编码不存在中文,因此报错。

      解决方法就是:在代码文件前段申明编码格式。

     145213_gAWN_3821557.png

3、控制台乱码 及 解决方案(运行环境:pycharm  与  控制台即:Windows 运行cmd)

     ①、pycharm定义为 utf-8 编码,执行结果正常,但控制台运行乱码

           解决方法: 将 pycharm 的编码格式改为 gbk 编码

     ②、写程序的时候讲内容定义为  Unicode编码格式,  此时无论在pycharm 中运行还是控制台都能正常显示中文,如下图。(即:以Unicode对象的形式存储在内存中,如果使用type查看,存储形式是  Unicode。Python在向控制台输出Unicode对象的时候会根据输出环境的编码进行转换。)

           150654_LsoN_3821557.png

六、文件操作实例

      题目:将Linux系统下的 /usr/local/src/passwd 文件内容,按照第3个列大小进行排序

      解答:shell  可以使用  awk  进行操作。

      160757_LRQC_3821557.png

           

 

 

 

 

 

转载于:https://my.oschina.net/u/3821557/blog/1790505

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值