blubiu

My Love

上网不网恋,简直浪费电.


Python从0到POC编写--文件操作


前言:

文件操作。


目录:


文件读取:

进行文件读取有两种方式,

一种是使用 open() 函数

另外一种是使用 with open 方式


打开文件的模式有:

  1. 只读模式(默认)

  2. 只写模式(不可读,不存在则创建,存在则覆盖)

  3. 追加模式(可读,不存在则创建,存在则只追加内容)


”+” 表示可同时读写某个文件:

  1. r+ 可读写文件(可读,可写,可追加)

  2. w+ 写读

  3. a+ 追加


“U” 表示在读取时,可以将\r \n \r\n自动转换成\n(与r或者r+模式同时使用)

因为Windows系统的换行符为\r\n,Linux系统的换行符为\n,加上U则能自动把\r\n转换成\n

  1. rU

  2. r+U


“b” 表示处理二进制文件:

  1. rb

  2. wb

  3. ab


open() 方法用于打开一个文件,并返回文件对象,

如果该文件无法被打开,会抛出 OSError 异常 ,

另外需要注意的是,使用 open() 函数需要手动关闭文件。

语法: open(file, mode) mode 为模式

例如:

f = open("D:/test.txt","r+")  # 打开 D盘下的 test.txt 文件

read = f.read() # 读取文件内容

print(read)  # 打印内容 输出 hello python

f.close() # 关闭文件

读取文件内容 (可指定每次读取字字符)

例如:

f = open("D:/test.txt","r+",encoding="utf-8")  # 设置为 utf-8 字符集

read = f.read(5) # 读取 5 个字符

print(read) # 输出 hello

f.close()

readline() 每次读出一行内容 ,

该方法比较适合大文件

例如:

f = open("D:/test.txt","r+",encoding="utf-8")

line = f.readline()  # 每次读出一行内容

while line:     # 循环读取
	print(line)
	line = f.readline()
f.close()

readlines() 读取所有内容(可指定读取字符数),

并保存在列表(list)变量中,每行作为一个元素

该方法读取大文件会比较占内存。

例如:

f = open("D:/test.txt","r+",encoding="utf-8")

lines = f.readlines()

for line in lines
	print(line)
f.close()

对于特殊需求,比如要输出某个文件的第n行内容

可以用 linecache 模块

例如:

import linecache

f = linecache.getline("D:/test.txt",2)  # 输出第2行内容

print(f)

f.close()

如果 是使用 with open 方式,那么可以不用手动关闭文件,

此方法会自动关闭文件。

语法:

with open(file,mode) as f:
	f.read()

f 是别名的意思。


文件写入:

write() 方法将字符串写入文件中,

默认是不换行的,如果想换行的话,得手动加入换行符 ‘\n’

例如:

f = open('D:/test2.txt','a+')

f.write('hello world\n')

a+ 为追加模式

如果是 w+ 的话,则会覆盖掉之前的内容,然后重新写入 。


文件删除:

文件删除使用 os 模块的 remove() 函数去完成

前面在 os 模块中也有提到过

例:

>>> import os
>>> os.remove('D:/test.txt')  #  删除D盘下的 test 文件

总结:

基础完了,例子很简单,

还是要多多学习啊。