浅析使用Python操作文件

 更新时间:2017年07月31日 08:47:01   作者:谷雨yun  
文件操作对编程语言的重要性不用多说,如果数据不能持久保存,信息技术也就失去了意义。按照本人经验,IO也是蛮头疼的一件事,因为不会用得太多,所以总是记不住API,每次都要重新google就会打断思路,还不一定每次都快速得到正确的文章。

1. file=open('xxx.txt', encoding='utf-8'),open()函数是Python内置的用于对文件的读写操作,返回的是文件的流对象(而不是文件本身,所以使用的方法都是流对象的方法)。使用这个函数时推荐指定encoding参数(Python2.7.x中好像不支持),因为Python代码在不同的平台环境中使用的默认编码方式不同,有可能会发生编译出错的问题。

2. 在open中的第一个文件名的的参数中,包含的路径表示虽然可以根据不同的环境使用斜杠和反斜杠,但在Python中表路径时,斜杠都是正确的。

3. file(流对象,open的默认模式下的返回值)的一些方法,使用for循环对file进行迭代时,每次迭代都会自动分离出一行(效果相当于对readlines结果的for循环遍历):
•file.name:获取文件的文件名(包含路径),即传入open文件名参数;
•file.encoding:获取文件的编码方式;
•file.mode:获取文件的访问方式,若没有指定这个参数,open的默认访问方式为只读“r”;
•file.closed:返回文件是否关闭的状态;
•file.close():关闭文件(使用完一定及时使用这个函数关闭文件);
•file.read():从当前定位(一般就是文件开始处)获取文件内容,返回整个文件内容的字符串(此时定位在文件尾,若再使用read()方法,会返回空字符串,因为已经到文件尾了),若指定了需要获取的 字符 数(可以给read方法传入参数,比如:read(3)表示从当前定位往后读取3个字符),则返回指定字符数的字符串。注意不能从一个字符的中间字节处读取,因为有的字符(比如中文)的表示不止一个字节,而定位是以字节来计算位置的,read()是以字符来计数的;
•file.seek(n):使定位到特定 字节 处(若使用read()方法读完文件后还想再读取一次文件,可以使用seek(0)重新定位到文件开始处再读取);
•file.tell():返回当前定位的字节位置;
•file.readline():读取文件中的一行,并定位到下一行的开始处;
•file.readlines():读取文件中的所有行,返回所有行为元素组成的列表;

4. 使用open进行文件操作使建议使用with创建运行环境,可以不用close()方法关闭文件,无论在文件使用中遇到什么问题都能安全的退出,即使发生错误,退出运行时环境时也能安全退出文件并给出报错信息。

# 使用with创建运行时环境
with open('xxx.text', encoding='utf-8') as file:
  file_content = file.read()
  file.seek(0)
  file_ten_characters = file.read(10)
  print(file_content)
  print(file_ten_characters) #执行完with中的代码后自动退出运行时环境

相关文章

  • Python面向对象中的封装详情

    Python面向对象中的封装详情

    这篇文章主要介绍了Python面向对象中的封装详情,在python中也有对对象的封装操作,使其对外只提供固定的访问模式,不能访问其内部的私有属性和私有方法。下文详细内容,需要的小伙伴可以参考一下
    2022-03-03
  • 批量获取及验证HTTP代理的Python脚本

    批量获取及验证HTTP代理的Python脚本

    这篇文章主要介绍了批量获取及验证HTTP代理的Python脚本,需要的朋友可以参考下
    2017-04-04
  • python logging日志模块的详解

    python logging日志模块的详解

    这篇文章主要介绍了python logging日志模块的详解的相关资料,希望通过本文能帮助到大家,让大家理解掌握这部分内容,需要的朋友可以参考下
    2017-10-10
  • 浅谈如何重构冗长的Python代码

    浅谈如何重构冗长的Python代码

    这篇文章主要介绍了浅谈如何重构冗长的Python代码,编写干净的 Pythonic 代码就是尽可能使其易于理解,但又简洁,过长的代码如何做到简洁高效,需要的朋友可以参考下
    2023-04-04
  • Python 切片索引越界的问题(数组下标越界)

    Python 切片索引越界的问题(数组下标越界)

    Python语言处理字符串、数组类的问题时有一定概率需要使用切片方法,本文主要介绍了Python 切片索引越界的问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • 超级实用的8个Python列表技巧

    超级实用的8个Python列表技巧

    这篇文章主要介绍了实用的8个Python列表技巧,帮助大家更好的理解和学习python列表的知识,感兴趣的朋友可以了解下
    2020-08-08
  • Pytorch 之修改Tensor部分值方式

    Pytorch 之修改Tensor部分值方式

    今天小编就为大家分享一篇Pytorch 之修改Tensor部分值方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Python实现列表中非负数保留,负数转化为指定的数值方式

    Python实现列表中非负数保留,负数转化为指定的数值方式

    这篇文章主要介绍了Python实现列表中非负数保留,负数转化为指定的数值方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python 如何将office文件转换为PDF

    python 如何将office文件转换为PDF

    这篇文章主要介绍了python 如何将office文件转换为PDF,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-09-09
  • 想学python 这5本书籍你必看!

    想学python 这5本书籍你必看!

    想学python,这5本书籍你必看!本文为大家推荐了学习python的5本书籍,5本经典书籍,感兴趣的小伙伴们可以参考一下
    2018-12-12

最新评论