找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
os:针对系统的路径进行操作的模块,os不仅兼容windows,mac,linux等系统平台都是可以兼容的。
使用import os 进行导入os模块。
1.getcwd:获取当前执行操作文件的所在目录的路径。
import os
print(os.getcwd())      获取路径。
2.isfile:判断路径是不是一个文件,返回布尔值。(is前缀的大部分是判断语句,需要使用print进行打印
print(os.path.isfile("file.txt"))    括号内添加路径,要用引号。
3.isdir:判断当前的路径是不是一个目录。
print(os.path.isdir("file.txt"))     判断括号内添加的内容是不是为目录。
4.exists:判断文件或者目录是否存在。
print(os.path.exists("file.txt"))     判断括号里的内容是否存在。结果显示true。
5.split:分割。分割末尾的文件和目录,分割完成之后返回一个tuple。
print(os.path.split("file.txt"))   
6.listdir:查找指定路径下面的文件和目录,包括隐藏文件和目录,查找完成之后返回一个list。
print(os.listdir(r"C:\Users\Administrator\PycharmProjects\wuhan15\demo"))    查看指定路径的文件和目录。
7.join:用于路径的拼接。
a=os.path.join(r"C:\Users\Administrator\PycharmProjects\wuhan15","demo")    赋值一个变量给a
print(a)        打印a
print(os.listdir(a))      查看a下面的文件或则目录。
8.mkdir。创建一个目录
os.mkdir(r"C:\Users\Administrator\PycharmProjects\wuhan15\demo\武汉18班")
9.rename:修改目录名称。
os.rename(r"C:\Users\Administrator\PycharmProjects\wuhan15\demo\武汉18班",r"C:\Users\Administrator\PycharmProjects\wuhan15\demo\武汉15班")       将目录武汉18班改为武汉15班。
10.__file__:当前文件名称路径。
print(__file__)     查看当前文件所在的路径。
11.dirname:用来查找当前路径的上一级目录。
print(os.path.dirname(__file__))       这是固定的格式,如果想查看当前文件下的上一级目录那就必须用这个格式。
想要查找上上级的目录,那么使用嵌套。在os里再套一层os。
print(os.path.dirname(os.path.dirname(__file__)))
python当中的异常:是指程序运行时发生异常错误。
1.语法错误异常:SyntaxError
2.索引异常:indexError
list1=[1]
print(list1[1])     
结果是,IndexError: list index out of range
3.键异常:Key Error:key不存在。
KeyError: 'huban'     这个huban不存在
4.缩进异常。IndentationError:语法缩进错误。
if 1==1:
print(1)
IndentationError: expected an indented block。缩进引发的错误。
5.变量不存在。NameRrror
print(di)
NameError: name 'di' is not defined    括号里的变量不存在。
6.数据类型错误。TypeError
a=123123
print(a[0])
TypeError: 'int' object is not subscriptable
异常处理:是指程序发生错误,异常处理,如果该程序发生异常要保证程序正常运行。
1.try:用来处理异常的
注意点:如果try下面语法发生错误,那么还是会抛出语法错误异常。
list1=[12.12,13,12]
try:
    print(list[19])    输出错误信息
except:
    print("hello word")     有错误信息时进行输出另一个信息
2.finlly:不管try下面的代码有没有异常,都会执行finally下面的语句。
程序员自己抛出异常,中断程序。
raise:用来抛出异常的关键字。
Exception:属于一个错误,包含了多有的错误类型。
如果条件成立,就给出一个异常,raise定义一个异常,exception的异常类型。
a=8
if a > 5:
    raise Exception("a 不能大于5")
结果显示:Exception: a 不能大于5
===========================================================================================================================================================
re正则:主要用来匹配数据,实现数据的快速查找。
1.预定义匹配符号:
\d:匹配数值0-9
\D:非数值
2.数量匹配符号:
^:匹配当前的文本是以什么进行开头
$:匹配当前的文本是以什么进行结尾
*:匹配内容0次或者n次
+:匹配内容0次或者n次
?:匹配0次或者1次
{ }:自定义匹配次数
{1,3}:自定义匹配区间
match函数:从第一个字符开始进行匹配,如果第一个字符不是想要匹配的内容,则报错。
import re
str1="abc123abc123"
str2=re.match("\D",str1)
print(str2.group())
结果是a,因为使用\D来进行匹配非数值的,所以结果就是第一个字母a。
str2=re.match("\d",str1)
如果用\d来匹配,就会报错。
*:匹配方式,匹配内容0次或者n次
str2=re.match("\D*",str1)
结果是abc,因为使用了*号,使用这个号意思就是匹配当前的内容,如果符合要求的话,他会一致匹配,直到匹配到非符合要求的内容,要是一直都是符合要求的内容,则会一直匹配。要是一开始就没有符合的内容,则不会进行匹配。
str2=re.match("\d*",str1)
结果没有内容,因为没有符合匹配的内容
+:匹配内容1次或者n次
str2=re.match("\D+",str1)
结果是abc,原理同上。唯一的区别是+号是从1次开始匹配的
str2=re.match("\d+",str1)
结果报错。因为是从1次开始匹配的,但是里面的内容第一次没有符合他的,所以报错。
?:匹配0次或者1次
str2=re.match("\D?",str1)
结果是a。这个最多匹配1次。
str2=re.match("\d?",str1)
结果没有内容,因为这个是从0开始匹配的
{ }:自定义匹配次数
str2=re.match("\d{0}",str1)
结果没有内容。如果匹配1次及以上,他就会报错。
str2=re.match("\D{3}",str1)
这是自定义匹配,进行了3次的匹配。所以结果是abc,如果匹配4次的话,就会报错。
{m,n}:匹配多少次到多少次
起始值:最少匹配的次数
结束值:最多匹配的次数
str2=re.match("\D{0,10}",str1)
这个的意思是匹配0次到10次,只要有符合的内容就会进行匹配。
^:匹配以什么进行开头:
import re
str1="15671809101"
str2=re.match("^156\d{0,10}",str1)
print(str2.group())
这个的意思是,匹配156开头的内容,匹配数值0到10次数值,他匹配几次,就会在现有的内容里匹配几次。
$:匹配以什么进行结尾。
list1=["www.baidu.com","www.taobao.com","www.jd.cn"]
for i in list1:
    str1=re.match("^www.*.com$",i)
    print(str1.group())
*匹配0次到n,www.*.com,匹配多次。
search:从第一个字符开始查找,找到直接返回结果,找不到继续往下找,具有穿透的功能。(默认匹配一次。
import re
str1="abc123abc123"
str2=re.search("\d",str1)
print(str2.group())
结果是1.这个指令具有穿透的功能,可以穿透不属于自己的内容,来找到属于自己的内容。
①str2=re.search("\d*",str1)    在后面输入*,匹配结果为空,因为匹配0次或者多次,第一个不是就结束,所以结果为空。
②str2=re.search("\d+",str1)    在后面输入+,匹配有结果。因为+号是从1次到n次。
③str2=re.search("\d?",str1)     *的结果一样,因为都是从0次开始匹配,所以结果为空。
findall:从第一个字符开始进行查找,找到所有内容为止。不需要配合group进行输出结果。
str1="abc123abc123"
str2=re.findall("\d",str1)
print(str2)
他的结果是以list的格式进行输出:
['1', '2', '3', '1', '2', '3']
*匹配符号:匹配0次或者1次,没有匹配到的内容用空格符代替。连续进行输出
str2=re.findall("\D*",str1)
结果是['abc', '', '', '', 'abc', '', '', '', ''],没有内容有空格进行代替了。
+匹配一次或者多次。不会匹配到空格。
str2=re.findall("\d+",str1)
结果是:['123', '123'],他没有空格,显示的直接为查找到的内容
?匹配0次或1次。和*的结果相同。单次进行输出。
['a', 'b', 'c', '', '', '', 'a', 'b', 'c', '', '', '', '']    输出的形式为单次。
提取关键的信息内容:
输入想要查询内容前面以及后面的内容。
str1="https://fanyi.baidu.com/translate?aldtype=16047&query=&keyfrom=baidu&smartresult=dict&lang=auto2zh#en/zh/exception"
str2=re.findall(".en/(.+)/ex",str1)   匹配.en/后面的内容,以及匹配/ex前面的内容,(.+)
print(str2)     输出结果
compile:用来配合findall使用的,用来生成正则的对象,单独使用没有任何效果。

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册