# 文件打开

文件打开
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: 是使用上下文管理器的方式,确保文件在使用后被正确关闭,即便处理时遇到异常也能保证关闭

# 文件访问模式

访问模式说明
rr以只读方式打开文件。文件的指针将会放在文件的开头
ww打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件
r+r+打开一个文件用于读写。文件指针将会放在文件的开头,(开始时不会清空文件)
w+w+打开一个文件用于读写。如果该文件已存在则将其覆盖(开始时会清空文件)。如果该文件不存在,创建新文件。
a+a+打开一个文件用于读写,如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果改文件不存在,创建新文件用于读写
rbrb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头
wbwb以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件
abab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
rb+rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头
wb+wb+以二进制格式打开一个文件用于读写。如果改文件已存在则会覆盖。如果改文件不存在,创建新文件
ab+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 文件

CSVCSV 文件是一种纯文本文件,用于存储表格和电子表格信息。内容通常是由文本、数字或日期组成的表格。

# 利用模块写入 CSV 文件

CSV
1
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='' 是为了防止在写入 CSVCSV 文件时产生空行
  • writer = csv.writer(file) 是创建一个 csv.writer 对象,用于将数据写入 CSVCSV 文件

# 文件读取

# 读取文本文件

读取文本文件
1
2
3
4
path = 'e:\\test.text'  

with open(path, 'r') as file:
print(file.read())

# 读取 CSV 文件

使用 CSVCSV 模块读取

读取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

readlinespythonpython 中用于读取文件的方法之一,它用于逐行读取文件内容,并将每一行作为字符串存储在一个列表

readlines
1
2
3
with open('e:\\test.txt', 'r') as file:  
line = file.readlines()
print(len(line)) # 输出行数

  • .strip()  是 Python 中用于字符串的方法,用于移除字符串开头和结尾的空白字符(包括空格、制表符  \t 、换行符  \n  等),如果不用 .strip() 的话,则会像下面这样
    strip
    1
    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='')

    # 输出
    # 12

# 一次读一行:readline

readline
1
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())
# 当文件读取完毕后,readline 将返回空字符串,因此可以在循环中使用如下写法来读取完整的文件:

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 是一个路径字符串列表
files = os.listdir(directory)

for file in files:
# os.path.join 是 Python 中用于拼接路径的函数。它的作用是将多个路径组件(如目录名、文件名)组合成一个完整的路径,同时确保路径格式正确(例如,正确处理不同操作系统的路径分隔符)。
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')

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

duoxichangan 微信支付

微信支付

duoxichangan 支付宝

支付宝