# 1、打开文件
# 路径:
# 相对路径:‘py.docx'
# 绝对路径:’D:\Python\路飞‘
# 模式
# rb,表示读取文件原始的二进制(r表示读取,b表示二进制)
# 打开文件
file = open('222.txt',mode='rb')
# 读取内容,并赋值给date
data = file.read()
# 关闭文件
file.close()
print(data)
# 转换成utf-8,也即转换成字符串内容
text = data.decode('utf-8')
print(text)
# 直接读取字符串内容
file_02 = open(r'E:\迅雷下载\111.txt',mode='rt',encoding='utf-8')
data_02 = file_02.read()
file_02.close()
print(data_02)
# windows绝对路径表示法:用反斜杠,或者双斜杠:如E:\\迅雷下载\\111.txt,或者:r'E:\迅雷下载\111.txt'
# 判断路径是否存在
import os
a = os.path.exists('E:\\迅雷下载\\111.txt')
print(a) # 结果True 或者False
# 打开图片文件
file_01 = open('一寸照.JPG',mode='rb')
# 读取内容,并赋值给date_01
date_01 = file_01.read()
# 关闭文件
file_01.close()
print(date_01)
# 2、写文件
# 方法一
file_03 = open('123.txt',mode='wb')
file_03.write('四大天王'.encode('utf-8'))
file_03.close()
# 方法二
file_03 = open('123.txt',mode='wt',encoding='utf-8') # encoding='utf-8'可以不用,系统默认
file_03.write('四大天王')
file_03.close()
# 3、图片文件写入
# 方法:先读取原图二进制内容,再写入到新文件
file_04 = open('一寸照02.JPG',mode='wb')
file_04.write(date_01)
file_04.close()
# 注意:w写入默认清空原先内容
# 案例:如何重复写入
file_05 = open('anli.txt',mode='wt',encoding='utf-8') # 不要循环的时候重复打开,否则前面内容会被清空
while True:
user_name = input('请输入用户名:')
if user_name.upper() == 'Q':
break
user_pass = input('请输入密码:')
user_info = f'用户名是:{user_name},密码是{user_pass}\n'
file_05.write(user_info)
file_05.close() # 要在循环结束后关闭,否则会报错
# 案例二,网络读取图片
import requests
file_06 = requests.get(url="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fhbimg.b0.upaiyun.com%2F7d4449c626791befe159cc90b01426256172153125db3-uL8GcZ_fw658&refer=http%3A%2F%2Fhbimg.b0.upaiyun.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1635870045&t=94d326be0b5d20949fc9d5d772caf01f")
file_07 = open('meinv.png',mode='wb')
file_07.write(file_06.content)
file_07.close()