Python:文件读写

#  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()
上一篇:ATM机案例3之数据库交互实现(一)


下一篇:IO中的一些常用流