首页 > 编程语言 > 详细

python文件操作

时间:2021-03-07 22:16:15      阅读:53      评论:0      收藏:0      [点我收藏+]

python文件操作

       文件操作是编程中必不可少的,配置文件,数据存储都是对文件操作。

 

一、python内置函数open()

       1、语法格式:

       open(file, mode=’r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

       此函数能够打开一个文件并返回文件对象。如果文件不能打开,则抛出操作系统异常OSError

       2、参数

  • 参数file是一个类似路径的对象,可以是字符串或数组表示的文件名称,文件名称是要打开文件的路径(绝对路径或者相对路径)。
  • 参数mode是指明打开文件的模式。
           ‘r’:只读模式打开文件,不可写入,此为参数默认值。
           ‘w’:写入模式打开文件,并且清空打开的文件。
            ‘x’:独占模式打开文件,如果文件已经打开,则会打开失败。
            ‘a’:写入模式打开文件,如果文件存在,则在文件末尾追加内容。
            ‘b’:二进制模式,例如读取声音、图像文件。
            ‘t’:文本模式,此为参数默认值。
            ‘+’:打开文件进行更新,可以读取或写入。
  • 参数buffering为可选参数,用于缓冲区的策略选择。
  • 参数encoding为文件编码,仅适用于文本文件。

  • 参数errors为编解码错误时进行的处理,但不能在二进制模式下使用。
  • 参数newline为文本模式指定下一行的结束符。可以是None,”,\n,\r,\r\n等。

  • 参数closefd用于传入的文件句柄,当退出文件时,不关闭文件句柄。
  • 参数opener用于实现自己定义打开文件方式。

二、文件的打开和关闭
 
#在Windows操作系统下打开文件,默认使用GBK编码打开,
#文本文件的写入utf8编码格式,打开也需要用utf8编码格式。
file=open(‘xx.txt‘,encoding=‘utf8‘)   #相对路径
file.read()      #打开文件
file.close()     #关闭文件

  

三、文件路径

       绝对路径:从电脑盘符开始的路径

              在windows系统里,文件夹之间用 \ 分隔

              在非windows系统里,文件夹之间用 / 分隔
 
       相对路径:当前文件所在的文件夹开始的路径
              ‘xx.txt‘(或 ./xx.txt):当前文件夹
              ‘demo/xx.txt‘:下级文件夹
              ‘../xx.txt‘:上级文件夹
 
       路径书写的三种方式:1、‘ \\ ‘ 2、r ‘ \ ‘ 3、‘ / ‘ ( 推荐使用 )

 
四、文件打开方式
  • ‘ r ‘:只读模式,默认,打开文件后,只能读取,不能写入。如文件不存在,会报错。
  • ‘ w ‘:写入模式,打开文件后,只能写入,不能读取。如果文件存在会覆盖文件,如果不存在,会创建文件。
  • ‘ b ‘:以二进制形式打开文件。

  • ‘ a ‘:追加模式,会在最后追加内容。
  • ‘ r+ ‘,‘ w+ ‘:可读可写,很少用

file=open(‘xx.txt‘,‘rb‘)
print(file.read())      #二进制读取  b‘\xe5\xa5\xbd\xe5\xa5\xbd\xe5\xad‘

file1=open(‘xx.txt‘,‘wb‘)
file1.write(‘好好学习‘.encode(‘utf8‘))  #二进制写入,转成文本

  

五、文件读取方式

file=open(‘aa.txt‘,encoding=‘utf8‘)
file.read()     #读取所有数据
file.readline()    #读取一行
file.readlines()    #读取所有数据,存入列表,每行为一个列表项
file.read(n)      #读取n的长度

  

六、文件拷贝

import os

old_file_name=input(‘请输入文件名:‘)
if os.path.isfile(old_file_name):
    names=old_file_name.rpartition(‘.‘)
    new_file_name=names[0]+‘.bak.‘+names[2]
    old_file=open(old_file_name,‘rb‘)
    new_file=open(new_file_name,‘wb‘)
    while True:
        content=old_file.read(1024)
        new_file.write(content)
        if not content:
            break
    new_file.close()
    old_file.close()

  

七、将数据写入内存

       将数据写入内存涉及到类StringIO
from io import StringIO

s_io=StringIO()
print(‘hello ‘,file=s_io,end=‘‘)    #控制台不显示
print(‘world!‘,file=s_io)           #控制台不显示
print(s_io.getvalue())              #控制台输出‘hello world!‘
s_io.close()

  

 
 
 
 

python文件操作

原文:https://www.cnblogs.com/shixiaoxun/p/14495226.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!