翼度科技»论坛 编程开发 python 查看内容

Python:文件操作详细教程

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
文件操作示例分析:

文件操作一般要经历三个步骤:

  • 打开文件
  • 操作文件
  • 关闭文件
读取操作示例:
  1. >>>f = open('test.txt', 'r')          # 打开文件test.txt, r表示只读,文件不存在则报错
  2. >>>f.read()                           # 文件打开后,read()方法将文件内容读到内存中
  3. '123432'                              # 获取的内容是一个字符串
  4. >>>f.close()                          # 文件使用完必须关闭,打开文件占用资源
复制代码
打开文件:文件句柄 = file('文件路径',‘模式’)
备注:Python中打开文件有两种方式,即open()和file(),本质上前者会调用后者进行文件操作,推荐使用open
上诉,方式中,每次打开一个文件操作完成后,都要手动关闭文件,操作繁琐,易忘。推荐一种更加简便的操作方式:with语句, 这种语句帮助我们自动完成f.close() 这一步操作。
  1. with open('test.txt', 'r') as f:
  2.     file = f.read()
  3.     print(type(file))
  4.     pirint(file)
  5. # 输出结果
  6. <class'str'>  # 取出的内容还是字符串
  7. 123432       # 虽然没有看到引号,但还是字符串
  8. ----------------------------------------------------------------------
  9. # with 语句的多文件同时处理
  10. # Python2.7版本之后,with 支持同事打开多个文件
  11. with open('db1','r') as f1, open('db2', 'r') as f2:
  12.     pass
  13. -----------------------------------------------------------------------
  14. # 一个文件读取一行处理一行然后写入另一个文件一行
  15. with open('db1', 'r', encoding="utf-8") as f1, open('db2', 'w', encoding="utf-8") as f2:
  16.     for line in f1:
  17.         new_str = line.replace('abc', "st")
  18.         f2.write(new_str)
复制代码
写入文件示例:
  1. with open('test.txt', 'a+') as f:
  2.     f.write('hello world')
复制代码
备注:所有的文件操作,如果文件没有写绝对路径,默认路径为程序所在路径,文件操作要注意操作文件的存在性。
文件操作权限:
  1. r   # 以只读的方式打开文件,文件的指针放在文件的开头,默认方式
  2. r+  # 以读写模式打开,和追加效果一样,但是如果文件不存在,不会像a一样创建文件,而是报错
  3. rb  # 以二进制格式打开一个文件用于只读,文件指针将会放在文件的开头,这是默认模式
  4. rb+ # 以二进制格式打开一个文件用于读写,文件指针放在文件的开头
  5. w   # 替换重写(覆盖写入)
  6. w+  # 以读写模式打开文件,如果该文件已经存在则将其内容覆盖,文件不存在则创建文件
  7. wb  # 以二进制格式打开一个文件只用于写入,如果该文件已经存在则将其内容覆盖,文件不存在则创建文件
  8. wb+ # 以二进制格式打开一个文件用于读写, 如果该文件已经存在则将其内容覆盖,文件不存在则创建文件
  9. a   # 在原文件的基础上,追加写入,文件指针放在文件结尾,如果文件不存在,则创建新文件进行写入
  10. a+  # 打开一个文件用于读写,如果文件已经存在,文件指针放在文件结尾。文件打开时是追加模式,如果文件不存在则创建文件用于读写
  11. ab  # 以二进制格式打开一个文件,如果文件存在,文件指针放在文件结尾,文件不存在则创建新文件并进行写入
  12. ab+ # 以二进制格式打开一个文件用于追加,如果文件存在,文件指针放在文件结尾,文件不存在则创建新文件用于读写
  13. b   # 二进制文件,主要用于跨平台,来解决windows和linux的回车换行区别,按照字节
  14. x   # python3中添加,如果文件存在则报错,不存在则创建并写入内容
复制代码
文件其他方法:
  1. f.mode      # 显示文件打开格式
  2. f.flush()   # 把缓冲区中的数据刷到硬盘,当你往文件里写数据时,python会先把你写的内容写到缓冲区,等缓冲区满了再统一自动写入硬盘,因此减少了对硬盘的操作次数,毕竟硬盘的速度比内存慢得多
  3. f.read()      # 把文件一次性读入内存
  4. f.read(szie)  # 一次读取指定大小的文件
  5. f.readline()  # 读取一行文件
  6. f.readlines() # 把文件都读入内存,并且每行转成列表中的一个元素
  7. f.tell()      # 显示程序光标所在该文件中的当前的位置,位置是以字节来算的
  8. f.seek()      # 跳到指定位置,f.seek(0) 是返回文件开始,位置是以字节来算的
  9. f.truncate()   # f.truncate(10) 从文件开头截取10个字符,超出的都删除
  10. f.writelines() # 参数需为一个列表,将一个列表中的每一个元素都写入文件
  11. f.xreadlines() # 以迭代的形式循环文件,在处理大文件时效率极高,只记录文件开头和结尾,每循环一次,只读一行,因此不需要将整个文件都一次性加载到内存,而如果用readlines(),则需要将整个文件都加载到内存,处理大文件不合适。
  12. f.next()       # 获取下一行数据,不存在,则报错
复制代码
文件对象的属性
  1. #学习中遇到问题没人解答?小编创建了一个Python学习交流群:153708845
  2. file.closed       # 返回True如果文件已经关闭,否则返回False
  3. file.mode        # 返回被打开文件的访问模式
  4. file.name        #  返回文件的名称
  5. file.softspace  # 如果用print输出后,必须跟一个空格符,则返回False ,否则返回True
复制代码
文件读取选择:


  • 文件很小,read() 最方便
  • 不确定文件大小,反复调用read(size) 安全
  • 如果是配置文件,调用readlines() 最方便
操作系统中文件操作
  1. import os    # python中的文件操作需要导入os模块
  2. os.rename( current_file_name, new_file_name)   # 文件重命名
  3. os.remove( file_name )   # 删除文件
  4. os.mkdir( "test")            # 创建一个目录test
  5. os.chdir( "newdir" )        # 切换目录到newdir
  6. os.getcwd()                   # 获取当前目录的路径
  7. os.rmdir( "dirname" )     # 删除目录,在删除目录前,它的所有内容应该先被清除
复制代码
来源:https://www.cnblogs.com/xxpythonxx/p/18124116
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
来自手机

举报 回复 使用道具