python (二)正则和文件处理

1.编写验证email的正则表达式,邮箱名可以是英文字母或数字或-,_符号,邮箱后缀网址名可以是字母或数字,域名可以是com、org、edu

例如: [email protected]即为合法的email地址

(1)match()方法判断是否匹配,如果匹配成功,返回一个Match对象,否则返回None。常见的判断方法就是:

test = ‘用户输入的字符串‘
if re.match(r‘正则表达式‘, test):
    print(‘ok‘)
else:
    print(‘failed‘)
#!usr/bin/dev python
#coding:utf-8
import re
email = ‘[email protected]‘

f = re.match(r‘()@().(com|edu|org)‘,email)
print f

  这是首先我想到的代码,然后匹配用户名

f = re.match(r‘(\w+[-\w*]*)@([\w]*).(com|edu|org)‘,email)
#预定义字符集,可以写在[...]中\d 代表[0-9],   a\dc    a1c\D 非数字,      a\Dc    abc\s 空格,       a\sc    a c\S 非空字符     a\Sc    aSc\w 单词字符[a-zA-Z0-9] a\wc     a1c,aec,aXc都可以匹配到\W 非单词字符   a\Wc    a c,a#c,a^c  就可以匹配到了#数量词,可以用在字符或(...)之后。* 匹配前一个字符0或无限次+ 匹配前一个字符1或无限次? 0或1次{m} 匹配前一个字符m次  ab{2}c   abbc   与预定义字符集结合起来比如  f=re.findall(r‘(\w+\s+)‘,str)就可以找到非行首的多个空格了{m,n} 匹配一个字符m至n次,at{3,4}c   就会匹配到 atttc和attttc ,而不会匹配到atc 或者  atttttc

| 代表表达式两侧的任意匹配一个

2.利用随机函数产生一个用户的用户名密码,并利用文件将用户名和密码保存下来。用户名一般是8-32位的,允许包含下划线,密码通常是8-16位,允许包含特殊字符
#!usr/bin/dev pyhton
#coding:utf-8

import random
import hashlib
runum = random.randint(8,32)
print runum
us = 0
usrname = ‘‘
for us in range(runum):
	us+= 1
	rs = random.choice(‘qwertyuiopasdfghjklzxcvbnm1234567890_‘)
	usrname += rs
print usrname
pword = ‘‘
rpnum = random.randint(8,16)
ps = 0
for ps in range(rpnum):
	ps += 1
	pw = random.choice(‘[email protected]#$%^&*()-=[]\\|}{;:""?><,.\‘`~‘)
	pword += pw
print pword

  

3.密码没有加密,将密码使用md5库处理,并保存。md5加密处理库import hashlibhashlib.md5(password).hexdigest()上面已经写了,如何生成随机用户名和密码,就不重新写了,只写如何保存md5.
import hashlib
md5pword = hashlib.md5(pword).hexdigest()
print md5pword

with open(‘usrmd5p.txt‘,‘w‘) as f:
	f.write(usrname)
	f.write(‘\n‘)
	f.write(pword)
	f.write(‘\n‘)
	f.write(md5pword)
f.close()

  

4.文本处理

上个月做了一家做自然语言的公司的笔试题,我觉得题目还是有点意思的,要求如下:

  1. 去除所有标点符号;需要去除的标点符号是如下几种: , . ! ? : ;
  2. 所有数字包括小数,整数,负数都替换成一个替代字符串: ==NUMBER==
  3. 所有大写字母全部转成小写
  4. 去除每行起始的所有空格
  5. 连续的空格缩短为单独的空格(除每行起始连续空格,见以上规则4)
  6. 如果经过上述处理导致一行为空,则在此行处放置标记字符串:[REMOVED]
文本有点长,我放在网盘上了:https://pan.baidu.com/s/1o8mdXd4

h2 { margin-top: 0.46cm; margin-bottom: 0.46cm; direction: ltr; line-height: 173%; text-align: justify; page-break-inside: avoid; orphans: 0; widows: 0 }
h2.western { font-family: "DengXian Light", serif; font-size: 16pt }
h2.cjk { font-family: "DengXian Light"; font-size: 16pt }
h2.ctl { font-family: ; font-size: 16pt }
p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: justify; orphans: 0; widows: 0 }

时间: 2024-07-31 23:35:32

python (二)正则和文件处理的相关文章

Python小白学习之路(二十)—【打开文件的模式二】【文件的其他操作】

打开文件的模式(二) 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码.图片文件的jgp格式.视频文件的avi格式) rb:   以字节方式读文件 wb: 以字节方式写文件ab: 以字节方式追加文件 注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,所以不能指定编码 1. rb #错误举例 f = open ('test1.py', 'rb', encoding = 'utf

Python基础之一:文件类型及运算符

一.PYTHON文件类型 1.源代码 Python源代码的文件以"py"为扩展名,由Python解释,不需要编译: 2.字节代码 Python源文件经编译后生成的扩展名为"pyc"的文件: 编译方法:     importpy_compile     py_compile.compile("hello world.py") 3.优化代码 经过优化的源文件,扩展名为".pyo"  python –O –m py_compile 

python专题-读取xml文件

关于python读取xml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码.这样并不利于初学者的学习,希望这篇文章可以更通俗易懂的教如何使用python 来读取xml 文件. 什么是xml? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. abc.xml <?xml version="1.0" encoding="utf-8"?> <catalog> <max

python 函数初识和文件操作

文件操作  打开文件:文件句柄 = open('文件路径', '模式') 打开文件的模式 w #以写的方式打开 (不可读,不存在则创建,存在则删除内容) a #以追加的模式打开(可读, 不存在则创建,存在则追加内容) r #以只读模式打开 "+" 表示可以同时读写某个文件 r+ #以读写的模式打开 w+ #以读写的模式打开 a+ #以读写的模式打开 "b”表示处理二进制文件 rb #以二进制模式读打开 wb #以二进制写模式打开 ab #以二进制追加模式打开 rb+ #以二进

python 中文正则表达匹配

需求:由于某个n年前的工具的错误,在复制一批文件的时候产生了大量的"复件xxxxxxx""复件(2)XXXXX"等类似文件,由于目录结构深,文件多,预计在5000万个,但是有多少这种错误的文件不清楚,因此写个脚本遍历删除. #encoding=utf-8 #author: skybug #date: 2014-05-11 #function: 遍历指目录,删除中文开头的文件名的图片 import os,re cnt = 0 pattern = re.compile(

python之旅:文件处理

一 文件操作及理论 一 介绍 计算机系统分为:计算机硬件.操作系统.应用程序三部分我们用python或者其他程序,想要把数据永久的保存下来,就得写到硬盘里,但是应用程序是没有办法直接操作硬件的,这就用到了操作系统.操作系统把复杂的硬件操作封成简单的接口给用户使用,其中文件就是操作系统提供给应用程序来操作硬盘虚拟概念,用户用程序通过系统操作文件,就可以报数据保存到硬盘中了 有了文件的概念,我们无需再去考虑操作硬盘的细节,只需要关注操作文件的流程: #1. 打开文件,得到文件句柄并赋值给一个变量 #

Python学习:7.文件操作

文件操作 我们曾将听过一个问题,将大象放入冰箱分为三步:1.打开冰箱门,2.将大象放进去,3.关上冰箱门.今天我们要讲的Python文件操作的步骤就像将大象放入冰箱的步骤一样. 使用Python操作文件的基本步骤: 打开文件 对文件内容进行操作(读取文件信息,向文件中写入信息等) 关闭文件 一.打开文件 在上一篇的内置函数介绍中,我们提到了open这个函数,这个函数的作用就是打开一个文件. 格式一 文件句柄 = open(文件路径,打开格式,编码) 打开文件时,需要指定文件路径和以何种方式打开文

Python之IO编程——文件读写、StringIO/BytesIO、操作文件和目录、序列化

IO编程 IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口.从磁盘读取文件到内存,就只有Input操作,反过来,把数据写到磁盘文件里,就只是一个Output操作. 由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,就存在速度严重不匹配的问题.举个例子来说,比如要把100M的数据写入磁盘,CPU输出100M的数据只需要0.01秒,可是磁盘要接收这10

Python Django 之 静态文件存放设置

一.静态文件存放路径设置STATICFILES_DIRS 1.在django项目目录下面新建静态文件保存目录 2.在setting中添加相应寻找静态文件目录的配置 STATICFILES_DIRS=( os.path.join(BASE_DIR,"static"),) 3.将jquery放入相应路径中 4.验证静态文件的路径设置 1)url from django.contrib import adminfrom django.urls import pathfrom blog imp

计算机二级python 知识点篇(文件和数据格式化)

计算机二级python 知识点篇(文件和数据格式化) 考纲考点 文件的使用: 文件打开. 关闭和读写 数据组织的维度: 一维数据和二维数据 一维数据的处理: 表示. 存储和处理 二维数据的处理: 表示. 存储和处理 采用CSV格式对一二维数据文件的读写 知识点1 文件包括两种类型: 文本文件和二进制文件. 二进制文件和文本文件最主要的区别在于是否有统一的字符编码 文本文件一般由单一特定编码的字符组成, 如UTF-8编码, 内容容易统一展示和阅读. 二进制文件直接由比特0和比特1组成, 文件内部数