# 文件打开
文件打开1 2 3 4 5 6 7 8
| path = 'e:\\test.txt'
file = open(path, 'r') file.close()
with open(path, 'r') as file: content = file.read() print(content)
|
with open(...) as file:
是使用上下文管理器的方式,确保文件在使用后被正确关闭,即便处理时遇到异常也能保证关闭
# 文件访问模式
访问模式 | 说明 |
---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头 |
w | 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头,(开始时不会清空文件) |
w+ | 打开一个文件用于读写。如果该文件已存在则将其覆盖(开始时会清空文件)。如果该文件不存在,创建新文件。 |
a+ | 打开一个文件用于读写,如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果改文件不存在,创建新文件用于读写 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头 |
wb+ | 以二进制格式打开一个文件用于读写。如果改文件已存在则会覆盖。如果改文件不存在,创建新文件 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果改文件不存在,创建新文件用于读写 |
# 文件关闭
# with 语句
即为上文提到的 with open(...) as file:
# close 语句
可以显式调用文件对象的 close()
方法来关闭文件
close语句1 2 3 4 5 6 7 8
| path = 'e:\\test.txt'
file = open(path, 'r')
content = file.read() print(content)
file.close()
|
# 文件写入
# 写入文本文件
写入文本文件1 2 3 4
| path = 'e:\\test.txt'
with open(path, 'a+') path.write('nihao')
|
# 写入 CSV 文件
# 什么是 CSV 文件
CSV 文件是一种纯文本文件,用于存储表格和电子表格信息。内容通常是由文本、数字或日期组成的表格。
![]()
# 利用模块写入 CSV 文件
CSV1 2 3 4 5 6 7 8 9 10 11 12
| import csv path = 'e:\\测试.csv' data = [ ['100', 'zzmmcc'], ['101', 'mmzzcc'] ] with open(path, 'a+', newline='') as file: writer = csv.writer(file) writer.writerows(data)
|
newline=''
是为了防止在写入 CSV 文件时产生空行writer = csv.writer(file)
是创建一个 csv.writer
对象,用于将数据写入 CSV 文件
# 文件读取
# 读取文本文件
读取文本文件1 2 3 4
| path = 'e:\\test.text' with open(path, 'r') as file: print(file.read())
|
# 读取 CSV 文件
使用 CSV 模块读取
读取CSV文件1 2 3 4 5 6 7 8
| import csv path = 'e:\\测试.csv' with open(path, 'r') as file: reader = csv.reader(file) for row in reader: print(row)
|
# 逐行读取文件内容
# 一次读所有:readlines
readlines
是 python 中用于读取文件的方法之一,它用于逐行读取文件内容,并将每一行作为字符串存储在一个列表中
readlines1 2 3
| with open('e:\\test.txt', 'r') as file: line = file.readlines() print(len(line))
|
.strip()
是 Python 中用于字符串的方法,用于移除字符串开头和结尾的空白字符(包括空格、制表符 \t
、换行符 \n
等),如果不用 .strip()
的话,则会像下面这样
strip1 2 3 4 5 6 7
| with open('e:\\test.txt', 'r') as file: line = file.readlines() print(line[0].strip(), end='') print(line[1], end='')
|
# 一次读一行:readline
readline1 2 3 4 5 6 7 8 9 10
| with open('e:\\test.txt', 'r') as file: for i in range(10): print(file.readline().strip())
with open('e:\\test.txt', 'r') as file: line = file.readline() while line != '': print(line.strip()) line = file.readline()
|
# 文件相关操作
# 文件重命名
文件重命名(文件夹批量)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| import os directory = 'e:\\test'
files = os.listdir(directory) for file in files: file_path = os.path.join(directory, file) if os.path.isfile(file_path): newFileName = f'hhh_{file}' try: os.rename( file_path, os.path.join(directory, newFileName) ) print(f'Renamed {file} to {newFileName}') except OSError as error: print(f'Error renaming {file}: {error}')
|
# 文具删除
# 删除文件
如果不存在文件将会报错
删除文件1 2 3
| import os directory = 'e:\\test.txt' os.remove(directory)
|
# 删除文件夹
# 删除空目录
删除空目录1 2
| import os os.rmdir('e:\\test')
|
# 删除非空目录
删除非空目录1 2
| import shutil shutil.rmtree('e:\\test')
|