Python学习-0412

一、文件操作

  • 打开文件函数:open()

       参数说明:    

    open(name[, mode[, buffering]])

    open中mode的参数说明:

    r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

    rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

    r+ 打开一个文件用于读写。文件指针将会放在文件的开头。

    rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

    w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

    wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

    w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

    wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

    a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

    ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

    a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

    ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

  • 文件对象常用的操作方法:

      read():读取文件,返回字符串

      write(): 把字符串写入文件,只接受字符串类型参数

       readline():每次读取一行,返回该行的字符串

       readlines():读取全部的文件内容,返回list,每一行是一个元素

       name():返回文件名字

       fileno():文件描述符

       close():关闭文件

       closed():判断文件是否关闭,返回布尔类型

       encoding():设置文件编码格式

       truncate


示例1:往一个文件中写入内容

fw = open("2.txt", "w", encoding='utf-8')
fw.write('adfjhj\n你好啊')
fw.close()

示例2:读取一个文件并打印出内容

 
#使用codecs防止乱码
f=codecs.open('2.txt')

#使用read读取文件

txt=f.read()

print(type(f))

print(txt)

#使用close关闭

f.close()

示例三:循环打印一个文件内容,并显示每行行号
fr = codecs.open('2.txt', 'rb')
#enumerate函数,讲一个可迭代对象加入索引(行号)
for i, line in enumerate(fr.readlines()):
     print("{0}行内容为:{1}".format(i, line))
 

  •    使用with open打开文件可以不用close

with open('test.txt', 'r') as fd:
    f = fd.read()

二、Python函数

  • 函数的定义

     函数的格式:

        def关键字开头,+ 函数名+ (参数):

        

    def name(args):
        pass
 

        函数中的关键字:

        return关键字       代表函数执行完返回的值

        pass   什么都不干

        exit(num) 强行退出

  •     为什么要使用函数
  • 降低编程难度:通常将一个复杂的问题分解成一系列的小问题,然后将小问题划分成更小的问题,当问题划分的足够细的时候,我们就可以分而治之。各个小问题解决了,大问题就迎刃而解了。
  • 代码重用:避免重复操作,提高效率


  • 函数的参数

    函数分为形式参数和实际参数:

    在定义函数时,函数名后面括号中的变量名称叫做“形式参数”也叫型参

    在函数调用时,函数后面括号中的参数叫做实参

示例:

#函数后面的s表示是形参
def cf(s):
    return s * 5
# 调用时的3表示是实参
cf(3)
  • 多类型参数

       一般情况下python函数形参和实参的数量要一致。但是当实参为序列数据类型时,我们可以将多个实参传递到形参中。 我们可以在实参列表中以 * 或者 ** 标识符来限制传入的实参必须为 Tuple/List 或 Dict 的类型对象。

def fun(x,y):
    print(x+y)

    当我们调用fun函数时,只用传入x和y两个值就可以了,但当我们想传入一个元组时t=(1,2)。这样fun(t)调用时不行的,我们需要使用*t来进行传值。但元组t中的元素个数要小于函数中定义的形参。

示例:

元组:

def fun(x, y, z):
    print(x + y + z)

fun(1, *t)

字典:

d = {'x':1,'y':2,'z':3}
def fun(x,y,z):
    print(x+y+z)
fun(**d)
 
  • 匿名函数

        lambda 函数是一种快速定义单行的最小函数,可以用在任何需要函数的地方。

        匿名函数的有点:

        使用lambda可以省去定义函数的过程,让代码更加精简。
        对于一些抽象的,不会被别的地方再重复使用的函数,使用lambda不需要考虑命名的问题

        使用lambda使代码更容易理解


        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值