昨天看完了这本python进阶,感觉这本书对我启发很大,做了三张纸的笔记,方便我在遇到问题的时候翻阅,然后寻找可能的解决方案。作为一个使用python一年的小白,虽然说不是小白,但是这一年来基本上是用什么学什么,对python没有系统的学习过,900多页的厚书看了三分之一就放弃了,所以对python的一些pythonic的东西不太了解,对其很多自带的方法都不知道,很多很好的方法都从来没有使用过,现在回过头来看看,自己的python代码确实冗余度很高,一点都不pythonic。所以说,还是有必要看一遍python的书的,起码做到通读一遍,对平常的开发也是很有帮助的。


进入正题。 
python下打开文件超级简单,不用导入任何包,直接输入

f = open('your_file.txt','r')
  • 1

就可以打开一个文件进行操作。第二个参数为对文件的操作方式,’w’是写文件,已存在的同名文件会被清空,不存在则会创建一个;’r’是读取文件,不存在会报错;’a’是在文件尾部添加内容,不存在会创建文件,存在则直接在尾部进行添加;还有’wb’是写二进制文件;’rb’是读取二进制文件,比如图片之类的。 
但是这种方式其实不是最好的打开文件的方式,这种方式可能会有这样几个问题: 
1、未指定文件编码格式,如果文件编码格式与当前默认的编码格式不一致,那么文件内容的读写将出现错误。 
2、如果读写文件有错误,会导致文件无法正确关闭。因为哪怕在后面有

f.close()
  • 1

语句,但是如果在打开的时候就出现错误,这种打开方式会出现问题。因此,一般来说,不推荐这种打开文件的方式。(我之前其实一直使用这种方法,,虽然也知道其他的方法,但是嫌麻烦一直没怎么用…)


上面的这些问题都是针对python2的,在python3下open函数可以通过encoding参数指定编码方式,而在2中不可以。 
在python3下可以直接通过这样来打开一个文件:

f = open('your_file.txt', 'r', encoding='utf-8')
  • 1

下面的两种方式在python2和python3下都可以使用,因此如果想要让你的代码在2和3下都兼容的话可以尝试下面的两种方法:

import codecs
f1 = codecs.open('your_file1.txt', 'r', 'utf-8') #使用codecs包
f1.close()
import io
f2 = io.open('your_file2.txt', 'r', encoding='utf-8') #使用io包
f2.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

不知道有没有细心的同学发现上面的打开文件的方式都有瑕疵,下面的方法则是用来解决刚才提到的第二个问题的,也是最推荐的一种打开文件的方式。

import codecs #或者io,使用哪种包无所谓
with codecs.open('your_file.txt', 'r', 'utf-8') as f:f.write('This method is prior')
  • 1
  • 2
  • 3

使用with这种上下文环境的方式打开文件,在对文件操作完成后无需通过close()关闭文件,文件会自动关闭,而且安全系数更高。

原文链接:https://blog.csdn.net/qq_23926575/article/details/76629741

python打开文件方式相关推荐

  1. python创建打开文件-python打开文件方式

    python中的open()函数用于打开一个文件,创建file对象,相关方法才可以调用它进行读写 语法:open(name,[,model[,buffering]]) 模式描述 r 以只读方式打开文件 ...

  2. 用python打开文件夹的三种方式

    用python打开文件夹的三种方式 一.利用explorer.exe import os# 利用explorer.exe执行 start_directory = r'C:\代码\软件包' os.sys ...

  3. python 打开文件的方式汇总

    python打开文件的方式 r: 只读,文件指针在文件头 例:open('test.txt','r'),此时文件指针在文件头,读取文件从第一个字符处开始向后读取内容.不可写入文件.不可创建文件 rb: ...

  4. python 打开文件4种方式

    python 打开文件4种方式 python 打开文件4种方式 [方式一]使用os.system()函数运行其他程序 [方式二]使用ShellExecute函数运行其他程序(用这种方法解决我的问题) ...

  5. python 打开文件夹_python打开目录

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python dirtree.py e:programmingpythonapp ...

  6. python打开文件写文件乱码_Python读写文件乱码问题

    对开发者来说,最恼人的问题之一莫过于读写文件的时候,由于编码千差万别,出现乱码问题.好难快速解决啊... 最近我也遇到了这样的问题,经研究,把大致的解决思路拿出来共享. 1. python中习惯首先声 ...

  7. python打开文件

    * open():open(file, mode='r', buffering=- 1, encoding=None, errors=None, newline=None, closefd=True, ...

  8. python文件闪退_python运行窗口闪退(python打开文件出现闪退什么原因)

    有时候,我们在运行python程序的时候会闪退,到底是什么原因呢?python文件是以.py结尾的,可以自己在python环境下运行的.对于这种闪退的情况,大概可以从以下几个方面分析. 第一步 首先找 ...

  9. python打开文件时,找不到文件 FileNotFoundError: [Errno 2] No such file or directory报错

    小白一枚,记录学习错误,共同进步 python打开文件时,找不到文件 FileNotFoundError: [Errno 2] No such file or directory报错 UnicodeD ...

  10. linux下vim 打开文件方式

    vim 打开文件方式 linux下使用vim打开文件可以使用两种方法: 一,  直接使用vim     XXX.txt   打开文件为xxx.txt的文件 二,在已经进入vim之后,要打开新的文件: ...

最新文章

  1. 从DDD看企业级问题解决方案框架
  2. Hinton口中破解宇宙终极秘密的GPT-3厉害在哪?这有篇涂鸦详解
  3. 解决ubuntu里面的sudo: /etc/sudoers is mode 0640, should be 0440
  4. python序列类型有_Python数值类型和序列类型
  5. Java ---- 序列化
  6. 密码协议(三)裁决协议和自动执行协议
  7. hadoop hdfs访问权限更新延迟问题
  8. BASIC-10 十进制转十六进制
  9. 操作html标签之找到标签(续)
  10. techempower之Plaintext上7百万RPS
  11. php正则过滤html标签_空格_换行符的代码,PHP 正则过滤 html 标签、空格、换行符的代码 (文章格式化)...
  12. linux的基础知识——TCP通信状态
  13. 背包九讲之三(多重背包)
  14. java中ajax的使用jar包_AJAX Java示例
  15. 前端性能优化(十一)
  16. 【图论】用匈牙利算法找女朋友(纯爱党的大胜利)
  17. OpenDrive里XY和ST
  18. DevOps平台的“精益创业”之路
  19. 对称加密算法:BlowFish
  20. 最新域名防红系统源码+实战搭建视频教程

热门文章

  1. 原来excel也能做职业数据分析(步骤完整且过程详细)
  2. python 键盘输入立刻反应_win10系统,为什么键盘输入字符后得停顿一下,鼠标点击才有效 例如在wor...
  3. ZigBee无线传感网络光照度监控系统设计
  4. redis读写分离之lettuce
  5. FastDFS Destination image dimensions must not be less than 0 pixels
  6. SpringBoot系列 - 集成JWT实现接口权限认证
  7. Linux v4l2 一 应用层
  8. POJ1759Garland题解
  9. CF1108D Diverse Garland
  10. Git用户手册--Git 内部原理