python网站和js做网站,搭建网站属于什么专业,网站开发美工总结,高品质的网站开发公司一、文件操作
1. 1 读取文本文件
# 文件操作模式
# r (默认) - 只读模式。文件必须存在#xff0c;否则会抛出FileNotFoundError。在这种模式下#xff0c;你只能读取文件内容#xff0c;不能写入或追加。
# w - 写入模式。如果文件存在#xff0c;内容会被清空#xff…一、文件操作
1. 1 读取文本文件
# 文件操作模式
# r (默认) - 只读模式。文件必须存在否则会抛出FileNotFoundError。在这种模式下你只能读取文件内容不能写入或追加。
# w - 写入模式。如果文件存在内容会被清空如果文件不存在会创建新文件。注意w模式不会自动添加内容到现有文件末尾而是覆盖文件。
# a - 追加模式。如果文件存在内容会被追加到文件末尾如果文件不存在会创建新文件。
# x - 创建模式。如果文件不存在会创建新文件并以写入模式打开如果文件已存在会抛出FileExistsError。
# b - 二进制模式。与前面的模式结合使用如rb只读二进制、wb写入二进制、ab追加二进制等。
# t - 文本模式默认。与前面的模式结合使用如rt只读文本、wt写入文本等。在文本模式下Python会处理换行符的转换。
# - 更新模式。允许同时读取和写入。例如r、w、a。
# U - 通用换行模式在Python 3中已弃用使用r和newline参数代替。# 打开一个文件
f open(d:/log/致橡树.txt, r, encodingutf-8)# 读取全部内容data None
try:while True:data f.read(16);if data :breakelse:print(data)
except:pass
finally:f.close()1. 2 读取二进制文件
from io import SEEK_SET,SEEK_END# 打开一个文件.模式为rb意思是读取二进制文件
file open(d:/log/aaa.png, rb)
# 获取文件大小
# 将当前file对象的指针逸动到末尾
file.seek(0, SEEK_END)
# 返回当前文件指针的位置即文件的大小
fileSize file.tell()
# 将指针移到文件开头
file.seek(0, SEEK_SET)
while True:# 读取512个字节一个扇区data file.read(512)# 如果读取的字节为空则退出循环if not data:break# 打印读取到的16个字节print(data)
1. 3 获取文件的摘要
# 计算文件的摘要
import hashlib
# 定义一个计算文件MD5哈希值的函数
def get_file_md5(file_path):# 初始化MD5哈希对象m hashlib.md5()# 打开文件以二进制模式rb读取with open(file_path, rb) as f:# 使用一个无限循环直到文件读取完毕while True:# 读取4096字节的数据data f.read(4096)# 如果没有更多数据文件读取结束退出循环if not data:break# 更新MD5哈希值m.update(data)# 返回计算得到的MD5哈希值以16进制字符串形式return m.hexdigest()if __name__ __main__:# 调用函数并传入文件路径print(get_file_md5(d:/log/aaa.png))
1. 4 文件的写入
# 文件写入
# with: 上下文语法with语句会自动关闭文件不需要手动关闭
with open(d:/log/致橡树.txt, w, encodingutf-8) as f:f.write(今天是2019年10月1日\n)f.write(今天是2019年10月2日\n)f.write(今天是2019年10月3日\n)
1. 5 文件的拷贝
# 文件拷贝
# 方式一采用Python shutil 模块
import shutil
shutil.copyfile(d:/log/致橡树.txt, d:/log/致橡树_copy.txt)# 方式二自定义函数
def copy_file(src, dst):with open(src, rb) as f_src:with open(dst, wb) as f_dst:while True:data f_src.read(4096)if not data:breakf_dst.write(data)copy_file(d:/log/致橡树.txt, d:/log/致橡树_copy.txt)
1. 6 读取CSV文件
# 读取CSV文件
import csv
def read_csv(file_path):with open(file_path, r, newline) as f:reader csv.reader(f,delimiter,)for row in reader:print(row) 1. 7 Excel 操作 读取xls文件
# excel操作
import xlrd # 读取xls类型文件
import xlwt # 生成excel文件 xls类型
import xlutilsimport openpyxl # 读、写xlsx类型文件# 读取excel文件
def read_excel(file_path):# 打开文件返回workbook对象workbook xlrd.open_workbook(file_path)# 获取所有sheetsheets workbook.sheet_names()# 打印所有sheet名称print(sheets)# 获取第一个sheet# sheet1 workbook.sheet_by_name(Sheet1)sheet1 workbook.sheet_by_index(0)# 打印sheet的名称行数列数print(sheet1.name, sheet1.nrows, sheet1.ncols)# 遍历sheet中的所有行for row in range(sheet1.nrows):# 遍历sheet中的所有列for col in range(sheet1.ncols):# 获取单元格数据cell_value sheet1.cell_value(row, col)print(cell_value)# 打开一个已存在的excel文件写入
def write_excel(file_path):# 打开文件返回workbook对象workbook1 xlrd.open_workbook(file_path)workbook2 xlutils.copy(workbook1)sheet1 workbook2.get_sheet(0)sheet1.write(0, 0, hello)workbook2.save(file_path)二、正则表达式
# 正则表达式
import re
# 根据输入的字符串去匹配是否是手机号
def is_mobile_phone(mobile_phone):# 1. 创建正则表达式对象表示规则手机号pattern re.compile(r^1[3-9]\d{9}$)# 2. 使用正则表达式对象匹配字符串返回匹配对象match pattern.match(mobile_phone)# 3. 获取匹配结果if match:return Trueelse:return Falseif __name__ __main__:print(is_mobile_phone(18988888888))