發表文章

目前顯示的是 8月, 2020的文章

Python自带的file 文件处理指针

上码 file1 = open ("xxx","r") for i in file1:     print (i) for z in file1:     print (z) 在python中打开文件,如果连续两次读取完整的python文件,那么就会出现第二次什么 都读不到的情况,以上代码不会把文件输出两次 原因是python在读取文件内容的时候是用指针的方式,相当于你的手指指着那一行文字 内容辅助你本人进行阅读,第一次读完整个文件的时候,指针已经跑到最底下了,再往 下的内容都是空白的,所以第二次调用文件的时候,就会什么都读取不到。 解决方法是在第二次读取文件之前插入一个file1.seek(0),这个表示让指针回到开头,就 好像你把手指重新放到第一行,来辅助你重新阅读一次文件括号里的数字0表示开头。 file1 = open ("xxx","r") for i in file1:     print (i) file1.seek(0) for z in file1:     print (z) 当然还有一种解决方法是,你再打开一次文件。file2 = open("xxx","r")

关于python的global

python在使用def的时候你会发现两个自定义的函数之间的变量没办法互通,会带来很多麻烦,这个时候就可以用global函数 #!/usr/bin/python # -*- coding: utf-8 -*- num = 100 def papa():     global num     num += 1     print (num)   def hiahia():     global num     num += 1     print (num) papa() hiahia() 码如上, 运行以后会先后出现101和102两个数字 这个就说明在每个函数中调用global之后,你就可以直接对这整个python文件中 的num变量进行修改(运算),可以起到从自定义的a函数中直接传递数据到b 函数的作用。

我也来塞一个小恐龙

Python IndexError: list index out of range

在Python里有时候会出现一个情况 list_h = [] list_i = [777,999] print (list_h[0]) print (list_i[3]) 运行不管哪个print都会出现IndexError: list index out of range print (list_h[0])报错的原因是这个列表里一个东西都没有,python只能反馈一个错误给你 print (list_i[3])报错的原因和上面差不多,这个列表没有第四个元素,所以一样报错 以及 如果用if  list_h == ""来想要让它为空集时执行某个指令,是行不通的,一样会报错,因为python没办法从这个列表里抓出元素来让if进行比较。想要让它为空集时执行某个命令,那么可以用 if  list_h:     啥也不做,如果在while里给个continue就好 else:     做你想做的事情

Python re的粗略使用

re.findall()函数 这是一个可以帮你在字符串里面,也就是在文本里寻找你需要的内容, 比如你想要找"user" = "hiahiahia"里面的hiahiahia,想要直接抓出来,那 么你可以用re.findall()来抓出来。 #!/usr/bin/python # -*- coding: utf-8 -*- import re string = ' "user" = "hiahiahia" ' result = re.findall('.*user.*=.*"(.*)".*',string) print (result) 输出 #[ 'hiahiahia'] 在findall()里是(匹配规则,来源),匹配规则是指你要怎么抓出你想要的内容 来源是指你要从哪里去使用你的匹配规则来抓出你想要的内容。 在匹配规则里.*的组合表示任意字符(串),被括号起来的部分是你要找的内容,(.*),表示 要找的内容可以是任意字符(串),那么上面的匹配规则表示的是 (任意)user(任意)=(任意)"(抓出任意内容)"(任意) 然后是从被定义的string里面抓,那么被抓出来的东西就是hiahiahia。