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

最新文章

  1. js 判断客户端浏览器
  2. [vivado系列]Vivado软件的下载
  3. 配置VS使用winteracter
  4. 【wikioi】1022 覆盖(匈牙利)
  5. django通过middleware计算每个页面的详细执行时间
  6. SpringMVC 接收ajax发送的数组对象
  7. spring3+struts2+hibernate3整合出现的问题,No mapping found for dependency [type=java.lang.String, name='struts.objectFactory.spring.enableAopSupport']
  8. C Primer Plus 第4章 字符串和格式化输入/输出 编程练习
  9. Spring AOP (上)
  10. ECSHOP商城全站自定义TITLE标题设置
  11. PHP--变量部分知识点
  12. eclipse maven SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder
  13. 利用nodejs监控文件变化并使用sftp上传到服务器
  14. 【BZOJ4034】【HAOI2015】树上操作
  15. 学习python的第二天
  16. Spring事务传播属性和隔离
  17. Thinkphp5+PHPExcel实现批量上传表格数据
  18. 【转】Android的root原理
  19. 例说hg(五)————创建repository
  20. .NET Remoting三种信道Http,Tcp,IPC和Web Service的访问速度比较(转)

热门文章

  1. 深入理解JS原型与原型链
  2. 选择IT行业的自我心得,希望能帮助到各位!(二)
  3. 一些SpringBoot的初步理解
  4. Web三维编程入门总结之一:WebGL与Threejs入门知识
  5. Python—一个简单搜索引擎索引库
  6. 2020不平凡的90天,Python分析三个月微博热搜数据带你回顾
  7. Cobalt Stike使用教程
  8. 【selenium】各种exception
  9. F - Dragon Balls
  10. 2020-MRCTF