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-文件操作&模块&面向对象的更多相关文章

  1. Python 文件操作模块 shutil 详解

    1.导入模块 shutil import shutil 2.shutil方法 2.1 shutil.copy(src,dst) //将 src 复制到 dst 保留文件权限    例:将Alan复制到 ...

  2. [Python学习笔记][第七章Python文件操作]

    2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...

  3. 初学Python——文件操作第二篇

    前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...

  4. 关于python 文件操作os.fdopen(), os.close(), tempfile.mkstemp()

    嗯.最近在弄的东西也跟这个有关系,由于c基础渣渣.现在基本上都忘记得差不多的情况下,是需要花点功夫才能弄明白. 每个语言都有相关的文件操作. 今天在flask 的例子里看到这样一句话.拉开了文件操作折 ...

  5. 小学生都能学会的python(文件操作)

    小学生都能学会的python(文件操作) 1. open("文件路径", mode="模式", encoding="编码") 文件的路径: ...

  6. Python文件操作:文件的打开关闭读取写入

    Python文件操作:文件的打开关闭读取写入 一.文件的打开关闭 Python能以文本和二进制两种方式处理文件,本文主要讨论在Python3中文本文件的操作. 文件操作都分为以下几个步骤: 1.打开文 ...

  7. 第十二章 Python文件操作【转】

    12.1 open() open()函数作用是打开文件,返回一个文件对象. 用法格式:open(name[, mode[, buffering[,encoding]]]) -> file obj ...

  8. 第九章 Python文件操作

    前一阵子写类相关的内容,把老猿写得心都累了,本来准备继续介绍一些类相关的知识的,如闭包.装饰器.描述符.枚举类.异常等,现在实在不想继续,以后再开章节吧.本章弄点开胃的小菜提提神,介绍Python中文 ...

  9. 第9章 Python文件操作目录

    第9章 Python文件操作 第9.1节 Python的文件打开函数open简介 第9.2节 Python的文件打开函数open详解 第9.3节 Python的文件行读取:readline 第9.4节 ...

  10. Python基础篇【第2篇】: Python文件操作

    Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说 ...

随机推荐

  1. 移位寄存器及verilog代码

    通用移位寄存器 作用:后续补全 )( :] Data_out, output MSB_out, LSB_out, :] Data_in, input MSB_in, LSB_in, input s0, ...

  2. Sphinx 2.0.8 发布,全文搜索引擎 Installing Sphinx on Windows

    参考资料地址信息 http://sphinxsearch.com/docs/latest/installing-windows.html http://my.oschina.net/melonol/b ...

  3. Repair Microsoft.VisualStudio.MinShell.Msi.Resources 2203 error And visual studio 2019 key

    1. Go to the properties of "My computer" 2. Go to advanced settings of the system 3. Go to ...

  4. php 截取字符串 strstr 和strrchr

    截取字符串 strstr 和strrchr 结果:(其中之一) strstr : 执行时间在0.10 - 0.19 之间 strrchr : 执行时间在0.095 - 0.19 之间 结论:从数十次执 ...

  5. Vue之外的杂谈笔记

    1.老项目的构建输出为什么臃肿? 引用:(引自http://www.cnblogs.com/linfangshuhellowored/p/5657285.html) 答:因为使用的是require的r ...

  6. 黄聪:table自适应宽度和高度

    自适应宽度: td { width: 1px; white-space: nowrap; /* 自适应宽度*/ word-break: keep-all; /* 避免长单词截断,保持全部 */ } 自 ...

  7. linux的ls命令详解

    概述 Linux ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录). 语法 ls [-alrtAFR] [name...] 参数 -a 显示所有文件及目录 (ls内定将文件名 ...

  8. Windows 10 powershell 中文乱码解决方案

    Windows 10 powershell 中文乱码解决方案 Intro 我装的系统是英文版的 win 10 操作系统,最近使用命令行测试接口,发现中文显示一直异常, 使用网上的各种解决方案都没有效果 ...

  9. java高并发系列 - 第5天:深入理解进程和线程

    进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础.程序是指令.数据及其组织形式的描述,进程是程序的实体. 进程具有的 ...

  10. C# get files and write the files full name in txt

    static void GetAllFiles() { string path = "filepath"; var allFiles = Directory.GetFiles(pa ...