Python对文件读写操作

  • 文件读操作

1、一次性读取所有 “r”
f = open("yesterday", "r", encoding="utf-8") 
data = f.read()
print(data)

备注:读取文件,光标会移动到读取的对应位置

2、一行一行的读取 readline()
读取该文件的前五行
# 方法1
f = open("yesterday", "r", encoding="utf-8")  # 获取文件句柄
print(f.readline())
print(f.readline())
print(f.readline())
print(f.readline())
print(f.readline())    # 此时光标移动到第五行末的位置

# 方法2
f = open("yesterday", "r", encoding="utf-8")  # 获取文件句柄
for i in range(5):
    print(f.readline())
3、获取文件所有行的内容 readlines()
"""循环文件,第10行的时候不打印"""

#low loop
f = open("yesterday", "r", encoding="utf-8")  # 获取文件句柄
print(f.readlines())   # 这里得到的是一个列表

for index, line in enumerate(f.readlines()):
    if index == 9:
        print("-----我是分割线-----")
    else:
        print(line.strip())
 
# high loop
count = 0
f = open("yesterday", "r", encoding="utf-8")  # 获取文件句柄
for line in f:
    if count == 9:
        print("-----我是分割线-----")
        count += 1
        continue
    print(line)
    count += 1
4、读写 “r+” 这是以读和追加的方式去操作文件
f = open("yesterday", "r+", encoding="utf-8")
print(f.readline())
print(f.readline())
print(f.readline())
f.write('----------diao-----------')
print(f.readline())

# 输出结果:打印yesterday文件的前四行,新写入的内容追加到文件的最后面
  • 文件写操作

1、写入操作,有同名文件就覆盖,没有则新建一个文件 “w”
f = open("yesterday2", "w", encoding="utf-8")  # 获取文件句柄

f.write("我爱北京,\n")
f.write("天安门上太阳升,\n")
2、写读操作 “w+”

会先按照文件名创建(覆盖)文件,然后进行操作

f = open("yesterday", "w+", encoding="utf-8")
f.write('----------diao-----------1')
f.write('----------diao-----------2')
f.write('----------diao-----------3')
f.tell()
f.seek(10)
f.tell() 
print(f.readline())
f.write('我爱北京天安门!')
  • 文件追加操作

1、单独追加写操作 “a”
f = open("yesterday2", "a", encoding="utf-8")  #获取文件句柄
f.write('我爱北京天安门。。。\n')
f.write('天安门前红旗升\n')  # 会将内容追加写入到文件最后
f.close()
2、追加读写操作 “a+”

1、追加读操作

f = open("datetime模副本.py", "a+", encoding="utf-8")  #获取文件句柄  光标此时在文件末尾  文本的原始长度为1142
print(f.tell())   #>>>1142
print(f.seek(0))  #将光标返回到文件其实位置
print(f.readline())  #打印文件的第一行内容

2、追加写操作 类似 “a”

f = open("datetime模副本.py", "a+", encoding="utf-8")  #获取文件句柄 光标此时在文件末尾
f.write('我是追加的内容,在增加在文件末尾!!!!')  #新增的内容长度为60
print(f.tell())  # >>>1202
  • 二进制格式操作文件

1、二进制读文件 “rb”
# 可以读取大部分任意格式文件 以二进制方式进行读取
f = open("cat.jpg", "rb")  # 这里括号中的编码格式encoding="utf-8需要去掉
print(f.read())
2、二进制写文件 “wb”
f = open("xixi", "wb")  # 这里括号中的编码格式encoding="utf-8需要去掉
f.write('hello binary\n'.encode())
f.close()
  • 修改文件

f = open('yesterday2','r',encoding='utf-8')
f_new = open('yesterday2.bak','w',encoding='utf-8')

for line in f:
	if '肆意的快乐等着我去享受' in line:
		line = line.replace('肆意的快乐等着我去享受','肆意的快乐等着陈柏霖去享受')
	f_new.write(line)

f.close()
f_new.close()

Python提供了非常方便的方式来读写TXT文件。以下是一些基本操作: 1. 读取TXT文件: 使用`open()`函数以读取模式('r')打开文件,并使用`read()`或`readlines()`方法来读取内容。然后记得使用`close()`方法关闭文件,或者使用`with`语句来自动管理文件的打开和关闭。 ```python # 使用with语句 with open('example.txt', 'r', encoding='utf-8') as file: content = file.read() # 读取整个文件内容 # file.readlines() # 读取所有行,返回一个列表 print(content) # 打印文件内容 ``` 2. 写入TXT文件: 同样使用`open()`函数,但是以写入模式('w')打开文件。如果文件已存在,写入模式会覆盖原有内容。使用`write()`方法写入内容,然后关闭文件。 ```python # 使用with语句 with open('example.txt', 'w', encoding='utf-8') as file: file.write('Hello, World!') # 写入字符串 ``` 3. 追加内容到TXT文件: 如果你想在文件内容的末尾添加新的内容而不是覆盖,应该使用追加模式('a')。 ```python # 使用with语句 with open('example.txt', 'a', encoding='utf-8') as file: file.write('\nAppend this line.') # 追加内容 ``` 4. 读取和写入二进制文件: 对于二进制文件(如图片、音频等),可以使用'b'模式打开,即读取时使用'rb',写入时使用'wb'。 ```python # 使用with语句读取二进制文件 with open('example.bin', 'rb') as file: binary_data = file.read() # 使用with语句写入二进制文件 with open('example.bin', 'wb') as file: file.write(binary_data) ``` 5. 处理文件读写中的异常: 读写文件时可能会遇到异常(如文件不存在、权限问题等),应当使用`try-except`语句来处理这些异常。 ```python try: with open('example.txt', 'r', encoding='utf-8') as file: print(file.read()) except FileNotFoundError: print("文件未找到") except IOError: print("文件读写错误") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值