python-文件操作&模块&面向对象
python 文件处理
li = [['语文','数学','英语'],['','','']]
for i in li:
print(','.join(i))
# join字符串拼接 语文,数学,英语
100,122,123
从原文件末尾开始写入
# 方法一
with open('user_info.txt','r+',encoding='utf-8') as f:
f.read()
f.write('a1')
# 方法二
with open('user_info.txt','r+',encoding='utf-8') as f:
f.seek(0,2)
f.write('a2')
# 方法三
with open('user_info.txt','a',encoding='utf-8') as f:
f.write('a3')
# 删除原文件的内容
file.seek(0)
file.truncate()
# 重新设置文件读取指针到开头
fo.seek(0, 0)
# 重新设置文件读取指针到末尾
fo.seek(0, 2)
pymysql模块
import pymysql
# 建立连接
conn = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='',
db='db1',
charset='utf8'
)
# 拿到游标
cursor = conn.cursor()
sql = 'select * from course'
rows = cursor.execute(sql) res=cursor.fetchall()
print(res) try:
# 执行语句
cursor.execute(sql)
# 提交事物
conn.commit()
except Exception as e:
print(e)
# 事物的原子性
conn.rollback() cursor.close()
conn.close()
# fetchone(每次查询一个),fetchmany(查询多个),fetchall全部
正则表达式
# 正则表达式 就是用来匹配字符串的一种(语言)工具
# 它本身也有用自己的规则组成的一个字符串,他是用自己的方式去表达目标字符串
import re # 3中常用的匹配模式
#1、 re.match(pattern,string),匹配字符串开头的,当匹配不到信息时返回None
string='abcddddddefg123 python_3.5123abc'
# pattern = 'abc'
# ret = re.match(pattern,string)
# print(ret.group())
# print(ret.span()) #2、re.search(pattern,string) # 在字符串中间查找,返回第一个匹配的
# pattern='123'
# pattern='wu'
# ret = re.search(pattern,string)
# print(ret.groups())
# print(ret.span()) # 3、re.findall(pattern,string)# 根据规则将字符串中所有信息都提取出来,返回列表
# pattern = 'abc'
# ret = re.findall(pattern,string)
# print(ret) # 一、原子
# 时正则表达式中最小的单位
# 可以用普通字符做原子
# string = "http://www.baidu.com"
# pattern = 'baidu'
# print(re.findall(pattern,string))
#
# # 非打印字符做原子
# string = '''\nhttp://www.baidu.com/\n\thttp://www.baidu.com/\n'''
# pattern = '\n'
# print(re.findall(pattern,string)) # 通用字符做原子
# \d 匹配数值字符 0-9 \D 表示取反
# \w 匹配 字符 数字 中文 下划线, \W 取反
# \s 匹配空白字符 \S 表示取反
# .(点) 匹配除了换行符(\n)外所有字符 string = '''\nhttp://www456.baidu.com/\n\thttp://www123.baidu.com/\n'''
# pattern='\d'
# pattern='\D'
# pattern = '\s'
# print(re.findall(pattern,string))
# string='abcdefg123 python 3.5$中文\t\n'
# pattern = '\w\w\w\w\w\w\s\d.\d'
# print(re.findall(pattern,string)) # 二、原子表(制定指定的单个字符规则),用来表示一组字符,可以指定范围和内容
# ^ 表示取反,写在原子表的里面
# string = '2ython$ bcdefgcACV.67# cython@ 1234567890! python¥_3.5 Zython'
# pattern = '[\d\s]'
# print(re.findall(pattern,string))
# pattern = '[^1-3]'
# # pattern = '[1-3a-fA-Z]'
# pattern = '[.]'
# print(re.findall(pattern,string))
# 注意:整个原子表只能表示一位字符 # 练习,将上面字符穿着所有的特殊符号拿下来
# pattern = '[^\w\s.]'
# print(re.findall(pattern,string)) # 元字符
# 边界限定元字符
# ^ 目标在字符串的开头
# $ 目标在字符串的结尾
# \b 匹配单词边界
# \B 匹配非单词边界
# string = '123abcython$ abcdefgcACV# cython@ 1234567890!abc python¥_3.5 abcs'
# pattern = '^123'
# pattern = 'abc$'
# pattern = r'\babc'
# pattern = r'abc\b'
# # pattern = '\Babc'
# print(re.findall(pattern,string)) #次数限定元字符
# * 重复前面的一个字符 0 到 无穷次
# + 重复前面的一个字符 1 到无穷次,
# ?重复前面的一个字符 0 - 1 次
#{n} 重复前面的字符n次
#{n,} 重复前面的字符 n 到无穷次
#{n,m} 重复n 到 m 次
# string='123defg abc123python_abcdd_3.5abcddd'
# pattern = 'abcd*'
# pattern = 'abcd+'
# pattern = 'abcd?'
# pattern = 'abcd{3}' # abcddd
# pattern = 'abcd{2,3}'# abcdd abcddd
# print(re.findall(pattern,string)) # 模式选择符 |
# string1='abcdefg123 python_3.5abc运动python特php价 php'
# pattern = 'python|php'
# print(re.findall(pattern,string1)) # 模式单元符 () 小括号里面的表达式为1组
# string='abc#python#cdcdcdcdefg123 abc#python#php_3333.52322abcpython'
# pattern = '(cd)+'
# print(re.findall(pattern,string))
# 经常在其前后加个限定,但是只会打印括号中表达式目标,括号外的限定不会被打印
# pattern = '#(python)#'
# pattern = '#([a-z]+_?)(\d+.\d+)'
# print(re.findall(pattern,string)) # 贪婪模式 尽量多的匹配信息
# 懒惰模式 在有多个结束条件时,选择最前面的一个条件结束匹配
# string='abcddddddefg123 python_3.5123abc'
# pattern = 'abc.+123' # 贪婪模式
# print(re.findall(pattern,string))
# pattern = 'abc.+?123' # 懒惰模式
# print(re.findall(pattern,string)) # complie 编译正则表达式, 当正则表达式 重复多次使用时,避免重复编译
# re.S 让正则中 .(点) 能够匹配换行符
# re.I 忽略大小写
# pattern = re.compile('c.*123',re.S)
# print(re.findall(pattern,string))
# string='abcddddddefgA123 pythZon_3.5123abc'
# string2='abc#python#cdcdcdcdefg\n123 abc#python#php_3333.52322abcpython'
# print(re.findall(pattern,string2))
# pattern2 = re.compile('[a-z]',re.I)
# print(re.findall(pattern2,string)) # split() 可以指定匹配字符进行分割
# string = 'a1b2c3d4e5'
# print(string.split('1'))
# print(string.split('[0-9]'))# 正则表达式不起作用
# pattern = '[0-9]'
# ret = re.split(pattern,string,2)# 可以指定分割次数
# print(ret) #sub() 指定匹配字符进行替换
# string='a1 python b2c3d4 cython dython cython cython'
# pattern = '[pcd]ython'
# ret = re.sub(pattern,'php',string,3)# 指定替换次数
# print(ret) # 练习: 写正则判断ip地址是否合法 '255.167.200.175'
# 255.255.255.255 每一小段 0-255 之间均视为合法
# string = '255.167.a200.175fsfs255.167.200.175fdfsdf255.167.200.175'
# pattern = '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' # \ 让点号 转义下, 只能表示他自身
# pattern = '^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$'
# pattern = '([0-9.]{4})'
# print(re.findall(pattern,string)) # 练习:
# s='name:小明 age:12,name:小汪 age:3,name:小李飞刀 age:18 我说:哈哈哈 '
# ret = re.findall('name:(\w+) age:(\d+)',s)
# print(ret) # 判断输入的数字是否是手机号码 # 138-8888-6666
# phone = input("请输入一个手机号:")
# if re.match('1[356789]\d{9}',phone):
# print("是个手机号码")
# else:
# print("不是手机号码") # 用正则表达式 将字符串中的字符和数字符号替换掉,最终结果为"北风网 上海"
# string ="abcdefg 北风网 上海 404 not found"
# pattern = '[a-z0-9\s]'
# # print(re.findall(pattern,string))
# # print(re.sub('[a-z0-9]','',string).strip())
#
# # -----------------------------------------------------------------
# pattern = '[a-z0-9\s]'
# print(re.findall(pattern,string))
# # 这个正则的过程等价于下面的程序
# str1 = 'abcdefghijklmnopqrstuvwxyz'
# num = '0123456789'
# w = ' '
# target=[]
# for i in string:
# if i in str1 or i in num or i in w:
# target.append(i)
# print(target)
# ---------------------------------------------------------------- # pattern = re.compile("\s([一二三四五六七八九十]{1,3})\s{0,3}(\w{7})\s")
# f = open('D:\File_Class\倚天屠龙记.txt','r',errors='ignore')
# c = f.read()
# # print(c)
# t = re.findall(pattern,c)
# print(t)
# f.close()
面向对象
封装、继承、多态
python-文件操作&模块&面向对象的更多相关文章
- Python 文件操作模块 shutil 详解
1.导入模块 shutil import shutil 2.shutil方法 2.1 shutil.copy(src,dst) //将 src 复制到 dst 保留文件权限 例:将Alan复制到 ...
- [Python学习笔记][第七章Python文件操作]
2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...
- 初学Python——文件操作第二篇
前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...
- 关于python 文件操作os.fdopen(), os.close(), tempfile.mkstemp()
嗯.最近在弄的东西也跟这个有关系,由于c基础渣渣.现在基本上都忘记得差不多的情况下,是需要花点功夫才能弄明白. 每个语言都有相关的文件操作. 今天在flask 的例子里看到这样一句话.拉开了文件操作折 ...
- 小学生都能学会的python(文件操作)
小学生都能学会的python(文件操作) 1. open("文件路径", mode="模式", encoding="编码") 文件的路径: ...
- Python文件操作:文件的打开关闭读取写入
Python文件操作:文件的打开关闭读取写入 一.文件的打开关闭 Python能以文本和二进制两种方式处理文件,本文主要讨论在Python3中文本文件的操作. 文件操作都分为以下几个步骤: 1.打开文 ...
- 第十二章 Python文件操作【转】
12.1 open() open()函数作用是打开文件,返回一个文件对象. 用法格式:open(name[, mode[, buffering[,encoding]]]) -> file obj ...
- 第九章 Python文件操作
前一阵子写类相关的内容,把老猿写得心都累了,本来准备继续介绍一些类相关的知识的,如闭包.装饰器.描述符.枚举类.异常等,现在实在不想继续,以后再开章节吧.本章弄点开胃的小菜提提神,介绍Python中文 ...
- 第9章 Python文件操作目录
第9章 Python文件操作 第9.1节 Python的文件打开函数open简介 第9.2节 Python的文件打开函数open详解 第9.3节 Python的文件行读取:readline 第9.4节 ...
- Python基础篇【第2篇】: Python文件操作
Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说 ...
随机推荐
- LG5003 跳舞的线 - 乱拐弯 线性DP
问题描述 LG5003 题解 设 \(mx[i][j][0/1]\)代表当前位置.朝向的最大拐弯数,最小同理. 来源为左边和上边. 坑点:起点可能为#. \(\mathrm{Code}\) #incl ...
- super()方法详解
目录 一.单独调用父类的方法 二.super() 方法基本概念 2.1 描述 2.2 语法 2.3 单继承使用super() 2.4 多继承使用super() 三.注意事项 四.练习 一.单独调用父类 ...
- golang:exported function Script should have comment or be unexported
当自己定义的包被外部使用时,如果不遵循一定的规范,那么会出现讨厌的绿色纹条,还会警告: 虽然不会影响运行,但是也令人讨厌,那么如何解决这个问题呢? 为结构体或者变量或者方法添加注释,并且开头必须是结构 ...
- Linux下科学计数法(e)转化为数字的方法 [shell中几种数字计算说明]
科学计数法使用e标识数值,将科学计算学转化为数字的思路:按e右边的数字移动小数点位数.e右边的数字如果是负数,则向左移动小数点.示例如下: 1.2345678e2 = 123.45678 1.2345 ...
- git 清除远程仓库已经删除的本地分支 清除已经合并到master的本地分支
在gitlab中执行deleted merged.也是可以在本地看到这些分支的 查看本地分支和追踪情况: git remote show origin 可以发现远程分支已被删除的分支,根据提示可以使用 ...
- wpf 当DataGrid列模版是ComboBox时,显示信息
实际工作中,有时DataGrid控件某一列显示数据是从Enum集合里面选择出来的,那这时候设置列模版为ComboBox就能满足需求.而关于显示的实际内容,直接是Enum的string()返回值可能 ...
- SpringBoot(八) SpringBoot整合Kafka
window下安装kafka和zooker,超详细:https://blog.csdn.net/weixin_33446857/article/details/81982455 kafka:安装下载教 ...
- HTML5新标签与特性---多媒体
多媒体标签 embed:标签定义嵌入的内容 audio:播放音频 video:播放视频 多媒体 embed(会使用) embed可以用来插入各种多媒体,格式可以是 Midi.Wav.AIFF.AU.M ...
- HTML常用标签二
图像标签和路径 目录文件夹:普通的文件夹,里面存放了我们做页面需要的相关素材,比如html文件,图片等 根目录:打开目录文件夹的第一层就是根目录 路径 相对路径 以引用文件所在位置为参考基础,而建立出 ...
- 记一次asp.net core 在iis上运行抛出502.5错误
asp.net core 在iis上运行抛出502.5异常的部分原因以及解决方案 环境说明 已安装 .net core runtime 2.1.401 已安装 .net core windows ho ...