打开文件
主要句式:open()
1、read() 一次读完
# 打开文件test.txt
f = open('test.txt',encoding='utf-8')# utf-8是要是解开中文无法解码的问题
# 读取文件中的内容
text = f.read()# 一次读完文件中的所有内容
print(text)
# 关闭文件
f.close()
'''
python2 默认使用ASCII编码
python3 默认使用utf-8
ASCII 一个字节表示一个字符
256 字符 涵盖了英文 不包含汉语
utf-8 1——6个字节表示一个字符 涵盖了地球上所有文字
大多数汉字是由三个字节表示
utf-8 是Unicode编码的一种编码格式
'''
print('中'.encode('utf-8'))
2、进制读取:读取文件按进制展示
# 该代码没试过,没会员,没钱,没下载,懒得下
f = open('xxx.mp3','rb') # 按二进制读取
f1 = open('xxx.mp3','wb') # 按二进制写入
res = f.read()
f1.write(res)
f.close()
f1.close()
3、readline() 按行读取
# 普通方法
f = open('test.txt','r',encoding='utf-8')
res = f.readline()
res1 = f.readline()
res2 = f.readline() # 如果行数读尽,剩下的readline会打印出空行
print(res)
print(res1)
print(res2)
# 为了方便以及去除最后的空行
# 进阶方法
f = open('test.txt','r',encoding='utf-8')
while True:
res = f.readline()
if not res:
break
print(res,end='')
4、readlines()
一次读完,然后将每行的内容写入到一个序列中,每一行的内容作为序列的元素
f = open('test.txt','r',encoding='utf-8')
res = f.readlines()
# 如果行数读尽,剩下的readlines会打印出空行
print(res)
5、read(int)
读取指定字符数
f = open('test.txt','r',encoding='utf-8')
while True:
res = f.read(1024)# 每次读取1024个字符
print(res)
if len(res) < 1024:
# 如果某一次读取到的字符数小于1024 说明是最后一次读取
break
f.close()
写文件
主要句式,write()。
# 写文件,w表示只可写入,会覆盖原有的同名文件
# 如果文件不存在,则创建文件
f = open('test1.txt','w',encoding='utf-8')
f.write('人生苦短 我用pythonn'*3) # write方法中同样可以使用数学表达式
f.write('哈哈哈') # 在文件关闭之前,可往文件里不断写入内容,不会覆盖原文件
f.writelines(['我','爱','你'])# 这是写一行,在上一句的后面如果没有换行符,不会换行
f.close()
f = open('test1.txt','a',encoding='utf-8') # a表示写入,但不会覆盖原有的同名文件,而是追加
f.write('阿巴阿巴阿巴')
f.close()
复制写法:
f = open('test1.txt','r',encoding='utf-8')
f1 = open('test2.txt','w',encoding='utf-8')
res = f.read()
f1.write(res)
f.close()
f1.close()
上下文管理器
#上下文管理器 作用:可自动关闭文件
with open('test.txt','r',encoding='utf-8') as f:
while True:
res = f.read(1024 * 1024 * 1024)
print(res)
文件备份
def copyFile():
old_file = input('文件名:')
# test.txt -> test_备份.txt
file_list = old_file.split('.') # 将用户指定的文件名以.分割[test,txt]
new_file = file_list[0] + '_备份.' + file_list[-1] # 凭借新的文件名
with open(old_file, 'rb') as f, open(new_file, 'wb') as f1:
# 用with语句 同时打开两个文件
f1.write(f.read())
if __name__ == '__main__':
copyFile()
导入
import 依赖包/文件
form 依赖包/文件 import 方法
import xxx as 别名 —— (文件名太长用这个)
这个没多少好记的。
要注意的是,两个文件不能相互导入。