文件/目录方法
import os
print(os.getcwd()) # 获取当前路径
print(os.listdir("d:\Learning\Python\demo")) # 列举指定路径下的所有文件及文件夹
os.rename("d:\Learning\Python\demo\demo.py",
"d:\Learning\Python\demo\demo_def.py") # 重命名文件
os.remove("d:/Learning/Python/demo/demo_def.py") # 删除文件
path = os.path.join("d:\Learning\Python\demo", "demo.py") # 拼接路径
print(path)
print(os.path.abspath("d:/Learning/Python/demo")) # 获取指定路径的绝对路径
print(os.path.split("d:/Learning/Python/demo/demo.py")) # 将文件夹和文件分隔
案例1: 找到指定文件夹下(包含子文件夹)所有的以".pyc"为后缀文件,并将其删除掉
def remove_target_file(path):
file_list = os.listdir(path)
for file in file_list:
abs_path = os.path.join(path, file)
if os.path.isfile(abs_path): # 判断是否是文件
print(abs_path)
if abs_path.endswith(".pyc"):
os.remove(abs_path)
else:
remove_target_file(abs_path)
remove_target_file(path)
案例2: 找到指定文件夹下(包含子文件夹)所有的包含“.py”的文件
path = "d:/Learning/Python/demo/os"
def find_file_by_kw(path, kw):
file_list = os.listdir(path)
for file in file_list:
abs_path = os.path.join(path, file)
if os.path.isfile(abs_path):
if kw in file:
print(abs_path)
else:
find_file_by_kw(abs_path, kw)
find_file_by_kw(path, ".py")
import datetime
import time
# 初始化指定日期
target_datetime = datetime.datetime(2000, 10, 10, 10, 10)
print(target_datetime) # 输出2000-10-10 10:10:00
now_time = datetime.datetime.now() # 获取当前时间和日期
print(now_time) # 输出当前时间和日期
print(type(now_time)) # 输出
now_time_str = now_time.strftime("%Y-%m-%d %H:%M:%S") # 格式化为字符串
print(now_time_str) # 格式化为字符串
print(type(now_time_str)) # 输出
now = time.strftime("%Y-%m-%d %H:%M:%S") # 获取当前时间和日期
print(now) # 输出当前时间和日期
print(time.time()) # 从1970开始的描述
import json
import pickle
people_dict = {"name": "Tom", "age": 20}
json_str = json.dumps(people_dict) # dumps将对象转换为字符串
print(type(json_str), json_str) # 输出 {"name": "Tom", "age": 20}
ret_dict = json.loads(json_str) # loads将字符串转换为对象
print(type(ret_dict), ret_dict) # 输出 {'name': 'Tom', 'age': 20}
people_dict = {"name": "Tom", "age": 20}
pickle_str = pickle.dumps(people_dict) # dumps将对象转换为字节序列
# 输出 b'\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x03\x00\x00\x00Tomq\x02X\x03\x00\x00\x00ageq\x03K\x14u.'
print(type(pickle_str), pickle_str)
ret_dict1 = pickle.loads(pickle_str) # loads将字节序列转换为对象
# 输出 {'name': 'Tom', 'age': 20}
print(type(ret_dict1), ret_dict1)
import hashlib
md5 = hashlib.md5()
md5.update("root".encode("utf-8"))
secret = md5.hexdigest()
print(secret) #输出63a9f0ea7bb98050796b649e85481845
1、文件打开的模式
r |
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb |
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ |
打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ |
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w |
打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb |
以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ |
打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ |
以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a |
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
2、文件操作:
try:
a = 10/0
print(a)
except Exception as e:
print("除数不能为0")
raise e # 把异常抛出来
finally:
print("无论发生什么情况,都执行此步。")
# 输出结果:
# 除数不能为0
# 无论发生什么情况,都执行此步。