Python 基礎函數學習

在这里插入图片描述

1、 Python读取txt文件函数

read()、readline()、readlines()

read() 一次性读全部内容
一次性读取文本中全部的内容,以字符串的形式返回结果

with open("test.txt", "r") as f:  # 打开文件
    data = f.read()  # 读取文件
    print(data)

在这里插入图片描述
readline() 读取第一行内容
只读取文本第一行的内容,以字符串的形式返回结果

with open("test.txt", "r") as f:
    data = f.readline()
    print(data)

在这里插入图片描述

readlines() 列表
读取文本所有内容,并且以数列的格式返回结果,一般配合for in使用

with open("test.txt", "r") as f:
    data = f.readlines()
    print(data)

在这里插入图片描述
readlines会读到换行符,可用如下方法去除:

with open("test.txt", "r") as f:
    for line in f.readlines():
        line = line.strip('\n')  #去掉列表中每一个元素的换行符
        print(line)

在这里插入图片描述

2、写入txt文本
with open("test.txt","w") as f:
    f.write("这是个测试!")  # 自带文件关闭功能,不需要再写f.close()
3、读写模式

要了解文件读写模式,需要了解几种模式的区别,以及对应指针

r : 读取文件,若文件不存在则会报错

w: 写入文件,若文件不存在则会先创建再写入,会覆盖原文件

a : 写入文件,若文件不存在则会先创建再写入,但不会覆盖原文件,而是追加在文件末尾

rb,wb: 分别于r,w类似,但是用于读写二进制文件

r+ : 可读、可写,文件不存在也会报错,写操作时会覆盖

w+ : 可读,可写,文件不存在先创建,会覆盖

a+ : 可读、可写,文件不存在先创建,不会覆盖,追加在末尾

4、常用的几个函数

(1)strip

Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

语法:

str.strip([chars]);

实例:

str = "00000003210Runoob01230000000"; 
print str.strip( '0' );  # 去除首尾字符 0
 
str2 = "   Runoob      ";   # 去除首尾空格
print str2.strip();

输出:

3210Runoob0123
Runoob

(2)split

split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串

语法:

str.split(str="", num=string.count(str)).

参数:

str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
num -- 分割次数。默认为 -1, 即分隔所有。

实例:

str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
print(str.split( ));       # 以空格为分隔符,包含 \n
print(str.split(' ', 1 )); # 以空格为分隔符,分隔成两个

输出:

['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
['Line1-abcdef', '\nLine2-abc \nLine4-abcd']
5 重要例子

将全班同学成绩进行排名,将成绩低于60分和高于60分分别排名

def read(fileName):
    st = []
    f = open(fileName,'r',encoding='utf-8')
    rows = f.readlines()
    for row in rows:
        s = row.strip("\n").split(" ")
        if len(s)==2:
            d = {"Name":s[0],"Score":str(s[1])}
            st.append(d)
    return st

def sort(st):
    print(st)
    for i in range(len(st)):
        for j in range(i+1,len(st)):
            if st[i]["Score"] < st[j]["Score"]:
                temp = st[i]
                st[i] = st[j]
                st[j] = temp

    return st

def save(st):
    f = open("../successorted.txt",'w')
    f2 = open("../failsorted.txt",'w')

    # for s in st:
    #     print(s)
    #     f.write(s['Name']+" "+str(s["Score"])+"\n")
    for i in range(len(st)):
         if st[i]["Score"] < '60':
             f.write(st[i]['Name'] + " " + str(st[i]["Score"]) + "\n")
         else:
             f2.write(st[i]['Name'] + " " + str(st[i]["Score"]) + "\n")

    #f.close

if __name__ == '__main__':

    fileName = "scores.txt"
    st = read(fileName)
    st = sort(st)
    save(st)

查漏补缺

st为读取txt的列表,可以通过st[i]["Name"]的方式进行定位。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值