zoukankan      html  css  js  c++  java
  • 函数的内置函数(文件)

    一、文件操作:

    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)
  • 相关阅读:
    linux 免密登录
    mysql 重置从库
    elasticsearch原理及简介
    多线程编程--心得
    为什么我们做分布式使用Redis?
    JAVA-JVM调优
    JAVA-JVM调优标志
    Spirng-Mvc之Servlet篇
    Agent Job代理 执行SSIS Package
    Python之爬虫的理解
  • 原文地址:https://www.cnblogs.com/Guido-admirers/p/6068796.html
Copyright © 2011-2022 走看看