Python 文件操作

系统 1348 0

https://www.runoob.com/python3/python3-file-methods.html

file() 函数用于创建一个 file 对象,它有一个别名叫 open()

1. 文件打开

open() 函数

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

file: 必需,文件路径(相对或者绝对路径)。写入模式下,若文件不存在会自动创建
mode: 可选,文件打开模式
buffering: 设置缓冲
encoding: 一般使用utf8,一般需要限定
errors: 报错级别
newline: 区分换行符
closefd: 传入的file参数类型

参考:https://www.runoob.com/python3/python3-func-open.html

mode模式 描述
t 文本模式 (默认)。
x 写模式,新建一个文件,如果该文件已存在则会报错。
b 二进制模式。
+ 打开一个文件进行更新(可读可写)。
U 通用换行模式(不推荐)。
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

2. 文件关闭

file.close() : 关闭文件,关闭后文件不能再进行读写操作。

使用完文件后,及时关闭,避免占用系统资源,同时防止文件损坏或丢失

3. 文件读取

  • file.read([size]) : 从文件读取指定的字节数,如果未给定或为负则读取所有。

                    
                       --未指定size时,当文件大小为当前机器内存两倍时,就会产生问题
    
                    
                  
  • file.readline([size]) : 读取整行,包括 “\n” 字符。不指定size时每次读取一行。

可以循环遍历文件对象来读取文件中的每一行

            
              fobj = open('sample.txt')
for x in fobj:
    print(x, end = '')
fobj.close()

            
          
  • file.readlines([sizeint]) : 读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区。

4. 文件写入

file.write(str)

将字符串写入文件,返回的是写入的字符长度

            
              fobj = open("ircnicks.txt", 'w')  # 先使用写入模式打开文件,ircnicks.txt若不存在,会自动创建
fobj.write('powerpork\n') # write()方法写入数据,一行需要以\n结尾
fobj.write('indrag\n')
fobj.close()

            
          

copy file1 to file2

            
              
import sys

#参数验证
if len(sys.argv) < 3:
    print("Usage: python ",sys.argv[0]," file1 file2")
    sys.exit(1) # 程序异常退出

f1 = open(sys.argv[1])  # 只读模式打开file1
s = f1.read() # 读取file1,将字节内容赋值给s
f1.close  # 关闭file1

f2 = open(sys.argv[2],'w') # 写入模式打开file2
#f2.write(s)  # 将s中存储的file1的内容 写入f2
f2.close # 关闭 f2

            
          

5. 脚本

脚本样例:

分析给定文本文件,返回其空格,制表符,行的相关信息: 提取码 th6f

CopyFIle : 提取码 z23s


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论