python 文件目录操作 2. 遍历目录 3. 文件的打开和关闭 4. 读取文本文件 5. 写文本

1
2
3
import os
path = r"C:1.txt"
print(os.path.exists(path))

2. 遍历目录

1
2
3
4
5
6
7
8
9
10
11
12
13
import os

dirname = r"C:output"

for filename in os.listdir(dirname):
filepath = os.path.join(dirname, filename)
print('=' * 60)
print('文件名: ', filename)
print('文件路径:', filepath)


with open(filepath, 'r', encoding='utf-8') as f:
pass

3. 文件的打开和关闭

方式1

1
2
3
4
filepath = r"C:1.txt"
f = open(filepath, 'r', encoding='utf-8') # 打开文件
# TODO
f.close() # 关闭文件

方式2:使用with语句,执行完后会自动关闭文件

1
2
3
filepath = r"C:1.txt"
with open(filepath, 'r', encoding='utf-8') as f:
pass

4. 读取文本文件

f.read() 一次读取所有文本(读到EOF为止)

1
2
3
4
5
6
7
filepath = r"C:1.txt"
with open(filepath, 'r', encoding='utf-8') as f:
# 一次读完所有文本
text = f.read()
# 按行遍历
for line in text.split('n'):
print(line)

for line in f 迭代一行一行读取,适用于读取大文件,可节省内存

1
2
3
4
5
6
filepath = r"C:1.txt"
with open(filepath, 'r', encoding='utf-8') as f:
# 一行一行读取
for line in f:
line = line.strip('n') # 去掉结尾的换行符
print(line)

f.readline() 读取1行

1
2
3
4
5
6
filepath = r"C:1.txt"
with open(filepath, 'r', encoding='utf-8') as f:
# 读取1行
print(f.readline())
# 再读取1行
print(f.readline())

f.readlines() -> List[str] 读取所有行

1
2
3
4
5
filepath = r"C:1.txt"
with open(filepath, 'r', encoding='utf-8') as f:
for line in f.readlines():
line = line.strip('n') # 去掉'n'
print(line)

5. 写文本