1、 读取文件,文件中没有中文

  备注 :

       文件名 : EnglishFile.txt

       文件位置 : 保存在所写的.py文件的同级目录,附上截图,便于参考

       备注 : 文件位置可以改变,只需要把文件路径传对即可,这里给了截图是怕有的小伙伴不知道文件该放在哪里,导致运行本程序出错

       

      文件内容 :          

       
  第一种读取方式 : read()  

  功能 : 读取文件全部内容

  参数 : /

  返回类型 : 字符串

  备注 : /  

# -*- coding: UTF-8 -*-

filePath = 'englishFile.txt'

fileoperation = open(filePath, 'r')
print fileoperation.read()
fileoperation.close()

  运行结果

This is what's in testFile: first line,
this is what's in testFile: second line
this is what's in testFile: third line

  第二种读取方式 : readlines()

  功能 : 逐行读取,但是也读取完文件

  参数 : /

  返回类型 : list列表

  备注 : /

# -*- coding: UTF-8 -*-

filePath = 'englishFile.txt'

fileoperation = open(filePath, 'r')

fileMessages = fileoperation.readlines()
for fileMessage in fileMessages:
print fileMessage, fileoperation.close()

  运行结果

This is what's in testFile: first line,
this is what's in testFile: second line
this is what's in testFile: third line

  第三种读取方式 : readline()

  功能 : 逐行读取文件, 每次读取一行

  参数 : /

  返回类型 : 字符串

  备注 : /

# -*- coding: UTF-8 -*-

filePath = 'englishFile.txt'

fileoperation = open(filePath, 'r')

print fileoperation.readline(),
print fileoperation.readline(),
print fileoperation.readline() fileoperation.close()

  运行结果

This is what's in testFile: first line,
this is what's in testFile: second line
this is what's in testFile: third line

2、 读取文件,文件中存在中文(其实读取方式相同,只是读出来为乱码,我们通过 decode('gb2312') 进行转码即可)

  备注 :

        文件名 : ChineseFile.txt

       文件位置 : 保存在所写的.py文件的同级目录,附上截图,便于参考

        备注 : 文件位置可以改变,只需要把文件路径传对即可,这里给了截图是怕有的小伙伴不知道文件该放在哪里,导致运行本程序出错

       

      文件内容 :        

      

  第一种读取方式 : read()

  功能 : 读取文件全部内容

  参数 : /

  返回类型 : 字符串

  备注 :读取之后为乱码,但是我们只要通过 .decode('gb2312') 编码即可

# -*- coding: UTF-8 -*-

filePath = 'ChineseFile.txt'

fileoperation = open(filePath, 'r')
print fileoperation.read().decode('gb2312')
fileoperation.close()

  运行结果

这是testFile文件中的内容 : 第一行
这是testFile文件中的内容 : 第二行
这是testFile文件中的内容 : 第三行

  PS : 也就是把读取的内容用.decode('gb2312')编码输出而已!!!

  第二种以及第三种读取方式同上,这里就不再写了。

3、 写入文件

  备注 :

        文件名 : writeFile.txt

        文件位置 : 保存在所写的.py文件的同级目录,附上截图,便于参考 

        备注 : 文件位置可以改变,只需要把文件路径传对就行了,这里给了截图是怕有的小伙伴不知道文件该放在哪里,导致运行本程序出错

        

  第一种方式写入文件 write(str)    

  功能 : 直接把参数str写入文件

  参数 : 需要写入文件的字符串

  返回类型 : None

  PS : 写入回车用 \n (也就是换行), 写入中文直接传递中文字符串即可

# -*- coding: UTF- -*-

filePath = 'writeFile.txt'
writeFileOperation = open(filePath, 'w')
writeString = 'aaa \nbbb'
writeFileOperation.write(writeString)
print '写入文件成功'
writeFileOperation.close()

  运行结果

写入文件成功

  PS : 此时,您可以看到 writeFile.txt 文件中已经写入内容了

  第二种方式写入文件 writelines(sequence_of_strings)

  功能 : 把 sequence_of_strings 写入文件

  参数 : 字符串或者任何产生字符串的可迭代对象

  返回类型 : None

  备注 : 我们很容易理解为写入一行就直接写入一个回车,其实并没有,这个函数没有自动加入回车,因此还得自己加 \n 否则不换行, 写入中文直接传递中文字符串即可

# -*- coding: UTF- -*-

filePath = 'writeFile.txt'
writeFileOperation = open(filePath, 'w')
writeFileOperation.writelines('aaa')
writeFileOperation.writelines('bbb')
print '写入文件成功'
writeFileOperation.close()

  运行结果

写入文件成功

  PS : 此时我们能看到文件中的内容为aaabbb,没有换行,这也说明了 writelines() 函数不自动换行

4、 打开文件 open()

  功能 : 打开文件,获取一个操作对象,用于读写文件

  参数 : 需要打开的文件以及打开方式

  返回类型 : file

  备注 : 该函数本应该写在笔记的最前面,但是写在了最后面。个人原因 : 因为我觉得读者来看读写文件操作,上来就看到一个不是读取文件的例子,就直接往下划走了,我当时学习时也是这样, 所以才把这个打开文件放在了最后面。我们都能看出每次操作文件都有 open() , 也就是打开文件,获取一个文件对象,接下来才可以读写文件,比如吃饭前我们得先烧饭,吃完饭得洗碗,所以每次 open() 后我们应该 close() ,例子就不写了,上面已经用到了,我把打开文件的方式整理一下。

方式 描述
w 打开文件用于写入内容。如果文件存在,直接打开,写入内容会覆盖原文件内容,如果文件不存在,自动新建文件(只读)
r 打开文件用于读取内容。(只读)
a 打开文件用于添加内容,写入内容在原文件内容之后,不覆盖原文件内容, 如果文件不存在,自动新建文件
wb 功能同上,只是以二进制格式打开,常用于非文本文档,如图片,.mp3 文件等
rb
ab

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

  1. python 文件的读取&更新

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

  2. Java I/O---RandomAccessFile类(随机访问文件的读取和写入)

    1.JDK API中RandomAccessFile类的描述 此类的实例支持对随机访问文件的读取和写入.随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组.存在指向该隐含数组的光标或索引 ...

  3. Python对于CSV文件的读取与写入

    今天天气"刚刚好"(薛之谦么么哒),无聊的我翻到了一篇关于csv文件读取与写入的帖子,作为测试小白的我一直对python情有独钟,顿时心血来潮,决定小搞他一下,分享给那些需要的小白 ...

  4. python中关于文件的读取和写入

    open()和close()方法:使用python的内置函数open()打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写. file object = open(file_name ...

  5. Python文件的读取写入操作

    一.打开文件.关闭文件操作 想要读取文件或是写入文件,第一步便是打开文件,最后一步便是关闭文件.这里介绍两种打开(关闭)文件的方式: 1.open()方法 f=open(file_name[,acce ...

  6. PHP文件操作 读取与写入

    基本知识: PHP文件系统是基于Unix系统的 文件数据基本类型:二进制数据.文本数据 文件输入流:数据从源文件到内存的流动 文件输出流:数据从内存保存到文件的流动 文件操作函数: >>& ...

  7. java中文件的读取和写入

    //首先要顶一个file文件用来存放要读取的文件 File f=new File("c:/test/aa.txt"); //在实例化一个输入流,并把文件对象传到里面 FileInp ...

  8. 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 ...

  9. C#的XML文件的读取与写入

    在设计程序的时候,对于一些变化性较强的数据,可以保存在XML文件中,以方便用户修改.尤其是对于一些软硬件的配置文件,很多都选择了用XML文件来存取.XML文件简单易用,而且可以在任何应用程序中读写数据 ...

随机推荐

  1. 【three.js第四课】自定义材料、贴图。

    1.先去下载6张不同的图片素材放到项目中. 2.在[three.js第三课]的代码基础上添加自定义的材料 //自定义材料 cubeMaterial 数组 //map:用于加载图片,THREE.Text ...

  2. Eclipse版本控制

    各版本的区别: 1.Eclipse IDE for Java Developers 是Eclipse的platform加上JDT插件,用来java开发的 2.Eclipse IDE for Java  ...

  3. C# 基础知识系列- 11 委托和事件

    0. 前言 事件和委托是C#中的高级特性,也是C#中很有意思的一部分.出现事件的地方,必然有委托出现:而委托则不一定会有事件出现.那为什么会出现这样的关系呢?这就需要从事件和委托的定义出发,了解其中的 ...

  4. layui.laytpl 模板引擎用法

    目录 layui下载地址: 最终效果: 模板引擎文档 手册地址: 以下是代码思路: layui下载地址: https://www.layui.com/ 最终效果: 模板引擎文档 手册地址: https ...

  5. Linux常见提权

    常见的linux提权 内核漏洞提权 查看发行版 cat /etc/issue cat /etc/*-release 查看内核版本 uname -a 查看已经安装的程序 dpkg -l rpm -qa ...

  6. github使用--配置sshkey

    配置sshkey 好处:每次提代码都不要输入用户名和密码. 1.生成key: 输入命令ssh-keygen -t rsa -C "邮箱地址" [邮箱地址:注册github时填写的邮 ...

  7. 三本毕业(非科班),四次阿里巴巴面试,终拿 offer(大厂面经)

    作者:gauseen 原文:https://github.com/gauseen/blog 公众号:「学前端」,只搞技术不搞广告文,欢迎关注~ 第一次 20:00 电话一面 - 自我介绍 - 对公司工 ...

  8. 学习web前端的免费12个学习网站,等你来撩

    我相信很多人刚喜欢web前端或者刚刚接触web前端的时候,都不愿意去花钱去培训或者买资料去学习,因为不知道自己会不会学好,或者只是一时脑热,所以就选择免费的去学习基础.编程学习 很多人包括一些企业家, ...

  9. 大部分人都不知道的8个python神操作

    01 print 打印带有颜色的信息 大家知道 Python 中的信息打印函数 Print,一般我们会使用它打印一些东西,作为一个简单调试. 但是你知道么,这个 Print 打印出来的字体颜色是可以设 ...

  10. 使用sqlmap结合dnslog快速注入

    0x01 起因 实际项目中遇到一个oracle延时注入,需要获取数据,几十个库几百张表,等找到关键数据不知道要到哪天. 测试支持带外请求 于是想用使用sqlmap利用DNS进行OOB注入 0x02 阿 ...