Day5:文件处理
Posted 互联网杂货店
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day5:文件处理相关的知识,希望对你有一定的参考价值。
1、文件模式
r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+:打开一个文件用于读写。文件指针将会放在文件的开头。
rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w:打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
2、文件的创建访问
# -*- coding: UTF-8 -*-
# 打开一个文件
fo = open("foo.txt",'wb')
print("文件名: ", fo.name)
print("是否已关闭 : ", fo.closed)
print("访问模式 : ", fo.mode)
# 写入文件
str="www.baidu.com \\n have a good day!\\n"
# python3和Python2在套接字返回值解码上有区别
# 解决办法非常的简单,只需要用上python的bytes和str两种类型转换的函数encode()、decode()
# str通过encode()
# 方法可以编码为指定的bytes;
# 反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()
str = str.encode()
fo.write(str)
# 关闭打开的文件
fo.close()
print("是否已关闭 : ", fo.closed)
# 读取
f = open('foo.txt', 'r', encoding='utf-8')
data = f.read()
print(data)
文件名: foo.txt
是否已关闭 : False
访问模式 : wb
是否已关闭 : True
www.baidu.com
have a good day!
3、文件指针
# # 打开一个文件
fo = open("foo.txt", "r+")
str = fo.read(10)
print("读取的字符串是 : ", str)
# 查找当前位置
position = fo.tell()
print("当前文件位置 : ", position)
# 把指针再次重新定位到文件开头
position = fo.seek(0, 0)
str = fo.read(10)
print("重新读取字符串 : ", str)
# 关闭打开的文件
fo.close()
读取的字符串是 : www.baidu.
当前文件位置 : 10
重新读取字符串 : www.baidu.
4、文件io
import os
# 重命名文件foo.txt到test.txt。
os.rename( "foo.txt", "test.txt" )
# 删除一个已经存在的文件test.txt
os.remove("test.txt")
# 创建目录test
os.mkdir("test")
# 删除”/tmp/test”目录
os.rmdir("/home/tmp/test")
# 获取当前路径
print(os.getcwd())
以上是关于Day5:文件处理的主要内容,如果未能解决你的问题,请参考以下文章