python 文件操作入门
本文整理了python文件相关的基本操作,如果能帮到你,那么我会非常高兴 😄
看这篇博客前,假设你已经具有以下环境配置:
- windows系统 或 mac系统 或 linux系统
- python3.6环境
- pip已经配置在环境变量内
并且具有以下前置技能:
- python成功运行过打印hello world
- 对操作系统的文件有 绝对路径 和 相对路径 的概念
- 会使用pip install相应的依赖
一.文件读写操作
1.读取文本文件,将结果按换行符分割存入列表
#!/usr/bin/python
# -*- coding: UTF-8 -*-
file = open("a.txt", encoding='utf8')
lines = file.readlines()
print(lines)
2.读取二进制文件(音频/视频等),结果为二进制字节
#!/usr/bin/python
# -*- coding: UTF-8 -*-
file = open("a.txt", mode='rb')
b = file.read()
print(b)
3.将字符串写入文本文件 (没有文件则新建,有文件则内容覆盖)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
file = open("b.txt", encoding='utf8', mode='w')
file.write("你好\n世界")
4.将二进制字节写入文件
#!/usr/bin/python
# -*- coding: UTF-8 -*-
read_file = open("b.txt", mode='rb')
result = read_file.read()
write_file = open("c.txt", mode='wb')
write_file.write(result)
二.文件本身操作
文件整体操作需要shutil或os,这些都是自带的
1.复制文件
import shutil
# 假设你当前有b.txt
shutil.copyfile('b.txt', 'd.txt')
2.移动文件
import shutil
# 假设你当前目录有b.txt
shutil.move('b.txt', 'e.txt')
3.重命名文件
import os
# 假设你当前目录有e.txt
os.rename("e.txt", "b.txt")
4.判断文件是否存在
import os
file_exist = os.path.exists('b.txt')
if file_exist:
print('文件存在')
else:
print('文件不存在')
5.删除文件
import os
os.remove('b.txt')
三.文件夹操作
1.判断路径是文件还是文件夹
import os
is_dir = os.path.isdir('a.txt')
if is_dir:
print('a.txt是文件夹')
else:
print('a.txt是不是文件夹')
is_file = os.path.isdir('a.txt')
if is_file:
print('a.txt是文件')
else:
print('a.txt是不是文件')
2.获取文件夹下所有文件名(不含绝对路径)
import os
list = os.listdir('C:\\desk\\code\\python\\file_deal')
print(list)
3.判断文件夹是否存在(与 例子2.4完全一致)
import os
file_exist = os.path.exists('b.txt')
if file_exist:
print('文件夹存在')
else:
print('文件夹不存在')
四. with关键字
如果使用open函数,来进行读写文件,最好是使用with关键字,会进行自动的资源释放,强推
with open("a.txt", encoding='utf8') as file:
lines = file.readlines()
print(lines)
五.进阶
看完以上内容,你应该可以写出一个 统计某个文件夹及其所有子文件夹下的某个字使用频率的python脚本
祝身体健康,工作愉快!!!
参考链接
- https://blog.csdn.net/hu1258123819/article/details/93100425
- https://blog.csdn.net/sinat_38682860/article/details/93388503
- https://blog.csdn.net/zhongnbyn/article/details/89635449
- https://blog.csdn.net/StephenHendery/article/details/79049521
- https://www.jb51.net/article/169026.htm
- https://www.jb51.net/article/167794.htm
- https://www.cnblogs.com/aaronthon/p/9509538.html
- https://blog.csdn.net/y_f_raquelle/article/details/88758394
- https://jingyan.baidu.com/article/ab69b270691ce42ca7189f8e.html