七、文件与数据格式化

本文介绍了Python中文件的管理,包括文件标识、标准文件、文件的打开与关闭、读取与写入,以及文件和目录的相关操作,如删除、重命名、创建和改变目录等。
摘要由CSDN通过智能技术生成

1、文件概述。a.文件标识

文件标识的意义:找到计算机中唯一确定文件

文件标识的组成:文件路径、文件名主干、文件扩展名。

 操作系统以文件为单位对数据进行管理。

b.标准文件:

stdin(标准输入文件)。标准输入文件对应输入设备,如键盘。

stdout(标准输出文件)。

stderr(标准错误文件)。标准输出文件和标准错误文件对应输出设备,如显示器。

## 例
import sys
file = sys.stdout
file.write("hello")

2、文件的打开与关闭

a.打开     open(file, mode='r', buffering=-1)

file:文件的路径。

mode:设置文件的打开模式,取值有rwa

buffering:设置访问文件的缓冲方式。取值为01

打开模式

名称

描述

r/rb

只读模式

以只读的形式打开文本文件/二进制文件,若文件不存在或无法找到,文件打开失败

w/wb

只写模式

以只写的形式打开文本文件/二进制文件,若文件已存在,则重写文件,否则创建新文件

a/ab

追加模式

以只写的形式打开文本文件/二进制文件,只允许在该文件末尾追加数据,若文件不存在,则创建新文件

r+/rb+

读取(更新)模式

以读/写的形式打开文本文件/二进制文件,若文件不存在,文件打开失败

w+/wb+

写入(更新)模式

以读/写的形式打开文本文件/二进制文件,若文件已存在,则重写文件

a+/ab+

追加(更新)模式

以读/写的形式打开文本/二进制文件,只允许在文件末尾添加数据,若文件不存在,则创建新文件

## 例1
file1 = open('E:\\a.txt')		# 以只读方式打开E盘的文本文件a.txt
file2 = open('b.txt', 'w')		# 以只写方式打开当前目录的文本文件b.txt
file3 = open('c.txt', 'w+')		# 以读/写方式打开文本文件c.txt
file4 = open('d.txt', 'wb+')	# 以读/写方式打开二进制文件d.txt
## 例2
FileNotFoundError                  Traceback (most recent call last)
<ipython-input-5-23b0bb5a2ffc> in <module>
----> 1 file1 = open("b.txt")

FileNotFoundError: [Errno 2] No such file or directory: 'b.txt'

b.关闭

## 例
file.close()       ## close()方法
## with语句方法
with open('a.txt') as f:
        pass

3、文件的读取。a.read()方法   格式:read(n=-1)

## 例   read()方法
with open('file.txt', mode='r') as f:
    print(f.read(2))   						# 读取两个字节的数据
    print(f.read())    						# 读取剩余的全部数据

b. readline方法  (1)格式readline()

## 例
with open('file.txt', mode='r', encoding='utf-8') as f:
    print(f.readline())
    print(f.readline())

(2)readlines(hint=-1)     参数hint的单位为字节,它用于控制要读取的行数;如果行中数据的总大小超出了hint字节,readlines()不会再读取更多的行

## 例
with open('file.txt', mode='r', encoding='utf-8') as f:
    print(f.readlines())            # 使用readlines()方法读取数据

4、写文件

## 例1   write(data)
string = "Here we are all, by day; by night."		# 字符串
with open('write_file.txt', mode='w', encoding='utf-8') as f:	
    size = f.write(string)					# 写入字符串
    print(size)						# 打印字节数
## 例2   writelines(lines)
string = "Here we are all, by day;\nby night we're hurl'd By dreams, 
each one into a several world."
with open('write_file.txt', mode='w', encoding='utf-8') as f:
    f.writelines(string)

(2)tell()方法

## 例
with open('file.txt') as f:
    print(f.tell())			  # 获取文件读写位置
    print(f.read(5))		  # 利用read()方法移动文件读写位置
    print(f.tell())			  # 再次获取文件读写位置

(3)seek()方法

格式:seek(offset, from)

poffset:表示偏移量,即读写位置需要移动的字节数。

from:用于指定文件的读写位置,该参数的取值为01、2。

0:表示文件开头。

1:表示使用当前读写位置。

2:表示文件末尾。

seek()方法调用成功后会返回当前读写位置。

## 例
with open('file.txt','rb') as f:    #需以二进制形式打开文件
    f.seek(5,0)					# 相对文件开头移动5字节
    f.seek(3,1)

5、文件与目录管理

删除文件——os.remove(文件名)

文件重命名——os.rename(原文件名,新文件名)

创建/删除目录——os.mkdir(目录名)/os.rmdir(目录名)

获取当前目录——os.getcwd()

更改默认目录——os.chdir(路径名)

获取目录列表——os.listdir(目录/路径)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值