函数的内置函数(文件)

一、文件操作:

1、打开文件(普通):

  f=open("text","r")      #只读

  f=open("text","w")       #只写,先清空原文件

  f=open("text","x")        #如果文件存在报错,不存在创建新文件并写内容

  f=open("test","a")      #追加      

实例:

1 f=open("text","r",encoding="utf-8")
2 data=f.read()
3 print(data,type(data))
4 f.close()

2、打开文件(b):

以字节的方式打开文件,输入,输出也都为字节。

实例:

1 f=open("text","ab")
2 f.write(bytes("理解“,encoding="utf-8"))
3 f.close()

3、打开方式(+):

r+      读写

w+      写读

x+      写读

a+      写读

4、操作文件:

read():无参数,读全部

        有b,按字节

    无b,按字符

write():写数据

    有b,写字节

    无b,写字符

seek():调整指针位置,在当前位置继续往后写,把后面的重复的位置覆盖。(按照字节的位置)

tell():获取当前指针的位置

实例:

1 f=open("text","r+",encoding="utf-8")
2 data=f.read(1)         #如果打开方式无b,则read按字符读取,read()填写的数字代表字节个数    
3 print(f.tell())        #tell当前指针所在的位置(字节)
4 f.seek(f.tell())       #调整当前指针的位置(字节)
5 f.write("guido")       #当前指针开始向后覆盖
6 f.close()

close():关闭文件
flush():强刷,程序未执行完,不会把内容写入硬盘,加flush会强刷入硬盘。

readable():是否可读

seekable():指针是否可操作

readline():仅读取一行

writeable():是否可写

truncate():保留指针前面的内容,清空后面的内容

for循环文件对象

1 f=open("text","r",encoding="utf-8")
2 for line in f:
3     print(line)

把文件逐行进行操作

5、关闭文件:

1 f.close()
1 with open("text","r",encoding="utf-8") as f,open("text1","r",encoding="utf-8") as f1:
2 #打开文件执行完后自动关闭
3     items=0
4     for line in f:
5         items += 1
6         if items<10:
7             f1.write(line)
8         else:
9             break

实例:

1 with open("text1,"r",encoding="utf-8") as f1,open("text2","w",encoding="utf-8") as f2:
2     for line in f1:
3         new_str=line.replace("Guido","st")
4         f2.write(new_str)

二、其他内置函数:

1、callable():

    检测函数是否会被执行

2、chr()

    进制的数转换为ascii码表对应的大写字母

     ord()

    把小写字母转换为ascii码表对应的十进制数

实例:

 1 import random
 2 li=[]
 3 for i in range(6):
 4     r=random.randrange(0,5)
 5     if r==2 or r==4:
 6         num=random.randrange(0.10)
 7         li.append(str(num))
 8     else:
 9         temp=random.randrange(65,91)
10         c=chr(temp)
11         li.append(c)
12         result="*".join(li)
13         print(result)

3、compile():

    把字符串编译成python代码    

eval():

    执行表达式,可返回结果给eval()

    用来计算存储在字符串中的有效的Python表达式。

>>>eval("2*3")
6

exec():

    可执行python的所有代码或字符串,没有返回值

    exec语句用来执行存储在字符串或文件中的Python语句。例如,我们可以在运行时生成一个包含Python代码的字符串,然后使用exec语句执行这些语句。

>>>exec(print("hello world"))
hello world
1 s="print(123)"
2 r=compile(s,"<string>","exec")    #把字符串编译成python代码,<string>可以换成文件名称
3 exec(r)                           #执行python代码

4、dir():

    查看对象提供的功能   

help():

    提供对象提供的功能的详细说明

5、divmod():

    两值相除,返回tuple(整数,余数)

1 r=divmod(100,9)
2 n1,n2=divmod(100,9)
3 print(r[0],r[1])
4 print(n1,n2)

6、isinstance():

    该对象是否是该对象的实例

1 s=[11,22,33,]
2 r=isinstance(s,list)
3 print(r)

7、filter():

    做筛选返回True,将元素添加到结果

实例:

 1 # filter(函数,可迭代的对象)
 2 def f2(a):
 3     if a>22:
 4         return True
 5 li=[11,22,33,44,55]
 6 # filer内部循环第二个参数
 7 # result=[]
 8 # for item in 第二个参数:
 9 #     r=第一个参数(函数item)
10 #     if r:
11 #         result(item)
12 # return result
13 # filter,循环第二个参数,让每个循环元素执行函数,如果函数返回值True表示元素合法
14 ret=filter(f2,li)
15 print(list(ret))

与filter功能相同:

1 def f1(args):
2     result=[]
3     for item in args:
4         if item>22:
5             result.append(item)
6     return result
7 li=[11,22,33,44,55]
8 ret=f1(li)
9 print(ret)

另一种:lambda表达式

1 li=[11,22,33,44,55]
2 result=filter(lambda a:a>33,li)
3 print(list(result))

map():对一个可迭代的对象批量做一项操作,将函数的返回值添加到结果中

1 li=[11,22,33,44,55]
2 # map(函数,可迭代的对象)
3 # def f2(a):
4 #   return a+10
5 #   result=map(f2,li)
6 result=map(lambda a:a+100,li)
7 print(list(result))

不用map函数:

1 11,22,33,44,55]
2 def f1(args):
3     result=[]
4     for i in args:
5         result.append(100+i)
6     return result
7 r=f1(li)
8 print(list(r))

8、float():

    转换数字为浮点数

9、format():

    格式化

10、globals():

    全局变量

       locals():

    局部变量

1 name=989908908
2 def show():
3     a=123
4     b=123
5     print(locals())
6     print(globals())
7 show()

11、hash():

    内部使用转换为哈希值

12、id():

    查看内存地址

13、len():

    查看对象长度(在python3中按字符查看,在python2中按字节查看)

14、max():

      求最大值

      min():

      求最小值

      sum():

      求和

r=max([11,22,33,44,55])

15、pow():

    2**10同pow(2,10)一样

16、reversed(list):

    等同list.(reverse)

17、round():

    四舍五入

18、slice():

    等同于切片功能

19、sort(list):

    排序,等同于li.sort()

20、vars():

    当前模块里都有哪些变量

21、zip():

    按序连接每个list里的项

实例:利用zip实现以下功能

1 l1=["Guido",22,33,44]
2 l2=["is",22,33,44]
3 l3=["my",22,33,44]
4 l4=["idol",22,33,44]
5 # 获取s=("Guido_is_my_idol")
6 r=zip(l1,l2,l3,l4)
7 temp=list(r)[0]
8 ret="_".join(temp)
9 print(ret)
原文地址:https://www.cnblogs.com/Guido-admirers/p/6068796.html