08文件操作(了解)+出识函数

-----------------------------------01 可读可写.py-----------------------------------#r+t:可读、可写

#w+t:可写、可读with open(‘b.txt‘,‘w+t‘,encoding=‘utf-8‘) as f:#     print(f.readable())#     print(f.writable())#a+t:可追加写、可读

#r+b#w+b#a+b

with open(‘b.txt‘,mode=‘rb‘) as f:#     data=f.read()#     print(data.decode(‘utf-8‘))

with open(‘b.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as f:#     data=f.read()#     print(data)

with open(‘a.txt‘,mode=‘r+‘,encoding=‘utf-8‘) as f:    print(f.readline())    print(f.readline())    f.write(‘小红帽‘)

---------------------------------02 控制文件指针移动.py---------------------------------

f.seek(offset,whence)#offset代表文件的指针的偏移量,单位是字节bytes#whence代表参考物,有三个取值#0:参照文件的开沟#1:参照当前文件指针所在位置#2: 参照文件末尾#ps:快速移动到文件末尾f.seek(0,2)

#强调:其中whence=1和whence=2只能在b模式下使用f=open(‘c.txt‘,mode=‘rt‘,encoding=‘utf-8‘)# # f.seek(9,0)print(f.tell()) # 每次统计都是从文件开头到当前指针所在位置# # print(f.readline())#f.close()

f=open(‘c.txt‘,mode=‘rb‘)f.readline()f.seek(6,1)print(f.readline().decode(‘utf-8‘))print(f.tell())f.close()

f=open(‘c.txt‘,mode=‘rb‘)f.seek(-9,2)print(f.readline().decode(‘utf-8‘))print(f.tell())f.close()

了解(**)只有在t模式下的read(n),n代表的是字符个数,除此之外其他但凡涉及文件指针的移动都是以字节为单位的f=open(‘c.txt‘,mode=‘rt‘,encoding=‘utf-‘)print(f.read(3))f.close()

f=open(‘c.txt‘,mode=‘rb‘,)print(f.read(3).decode(‘utf-8‘))f.close()

ab a+b r+bf=open(‘b.txt‘,mode=‘at‘,)f.truncate(9) # 参照物永远是文件开头f.close()

-----------------------------------03 文件修改.py-----------------------------------

with open(‘c.txt‘,‘r+t‘,encoding=‘utf-8‘) as f:#     f.seek(21,0)#     f.write(‘[我擦勒]‘)

#修改文件内容的方式一:#思路:先将原文件内容一次性全部读入内存,然后在内存修改完毕后,再#覆盖写回原文件#优点:在修改期间,文件内容只有一份#缺点:当文件过大的情况下或占用过多的内存空间

with open(‘d.txt‘,‘rt‘,encoding=‘utf-8‘) as read_f:#     msg=read_f.read()#     msg=msg.replace(‘alex‘,‘xiang‘)#     # print(msg)#with open(‘d.txt‘,‘wt‘,encoding=‘utf-8‘) as write_f:#     write_f.write(msg)

#修改文件内容的方式二:#思路:#1、以读的方式打开原文件,以写的方式打开一个新文件#2、从原文件中循环读取每一行内容修改后写入新文件#3、删除原文件,将新文件重命名为原文件的名字

#优点:同一时刻只有一行内容存在于内存中#缺点:在修改期间,文件内容始终存在两份,但修改完毕后会只留一份import oswith open(‘d.txt‘,‘rt‘,encoding=‘utf-8‘) as read_f,\        open(‘d.txt.swap‘,‘wt‘,encoding=‘utf-8‘) as write_f:    for line in read_f:        write_f.write(line.replace(‘xiang‘,‘ALEXSB‘))

os.remove(‘d.txt‘) # 删除老文件os.rename(‘d.txt.swap‘,‘d.txt‘)---------------------------------04 函数的基本使用.py----------------------------------‘‘‘

注册功能uname=input(‘username>>:‘).strip()pwd1=input(‘password>>: ‘).strip()pwd2=input(‘重复输入密码>>: ‘).strip()if pwd1 == pwd2:    with open(‘db.txt‘,‘at‘,encoding=‘utf-8‘) as f:        f.write(‘%s:%s\n‘ %(uname,pwd1))        f.flush()

#认证功能inp_uname=input(‘请输入你的账号:‘).strip()inp_pwd=input(‘请输入你的密码:‘).strip()with open(‘db.txt‘,‘rt‘,encoding=‘utf-8‘) as f:    for line in f:        info=line.strip(‘\n‘).split(‘:‘)        if inp_uname == info[0] and inp_pwd == info[1]:            print(‘login successfull‘)            break    else:        print(‘账号或密码错误‘)

注册功能uname=input(‘username>>:‘).strip()pwd=input(‘password>>: ‘).strip()with open(‘db.txt‘,‘at‘,encoding=‘utf-8‘) as f:    f.write(‘%s:%s\n‘ %(uname,pwd))    f.flush()

注册功能uname=input(‘username>>:‘).strip()pwd=input(‘password>>: ‘).strip()with open(‘db.txt‘,‘at‘,encoding=‘utf-8‘) as f:    f.write(‘%s:%s\n‘ %(uname,pwd))    f.flush()

#认证功能inp_uname=input(‘请输入你的账号:‘).strip()inp_pwd=input(‘请输入你的密码:‘).strip()with open(‘db.txt‘,‘rt‘,encoding=‘utf-8‘) as f:    for line in f:        info=line.strip(‘\n‘).split(‘:‘)        if inp_uname == info[0] and inp_pwd == info[1]:            print(‘login successfull‘)            break    else:        print(‘账号或密码错误‘)

‘‘‘

‘‘‘1、什么是函数?   在程序中,函数就具备某一功能的工具事先将工具准备好即函数的定义遇到应用场景拿来就用即函数的调用所以务必记住:#函数的使用必须遵循先定义,后调用的原则

2、为何要用函数 不用函数问题是: 1、程序冗长 2 程序的扩展性差 3 程序的可读性差

3 如何用函数:  函数的使用必须遵循先定义,后调用的原则‘‘‘def 函数名(参数1,参数2,...):#     ‘‘‘#     函数功能的描述信息#     :param 参数1: 描述#     :param 参数2: 描述#     :return: 返回值#     ‘‘‘#     代码1#     代码2#     代码3#     ...#     return 返回值

准备好工具=>函数的定义阶段def register():    while True:        uname=input(‘username>>:‘).strip()        if uname.isalpha():            break        else:            print(‘用户名必须由字母组成傻叉‘)

while True:        pwd1=input(‘密码>>: ‘).strip()        pwd2=input(‘重复输入密码>>: ‘).strip()        if pwd1 == pwd2:            break        else:            print(‘两次输入的密码不一致,眼瞎吗‘)

with open(‘db.txt‘,‘at‘,encoding=‘utf-8‘) as f:        f.write(‘%s:%s\n‘ %(uname,pwd1))        f.flush()

def auth():    #认证功能    inp_uname=input(‘请输入你的账号:‘).strip()    inp_pwd=input(‘请输入你的密码:‘).strip()    with open(‘db.txt‘,‘rt‘,encoding=‘utf-8‘) as f:        for line in f:            info=line.strip(‘\n‘).split(‘:‘)            if inp_uname == info[0] and inp_pwd == info[1]:                print(‘login successfull‘)                break        else:            print(‘账号或密码错误‘)

拿来就用=>函数的调用阶段print(register)register()auth()register()register()register()-------------------------------05 函数的定义阶段与调用阶段.py-------------------------------函数的使用必须遵循先定义,后调用的原则,没有事先定义函数,而直接引用函数名,就相当于在引用一个不存在的变量名

#1、函数定义阶段:只检测函数体的语法,不执行函数体代码def func():#     print(‘1111‘)#     print(‘222‘)#     print(‘333‘)

#2、函数调用阶段:执行函数体代码func()

例1def foo():#     print(‘from foo‘)#     bar()#foo()

例2def bar():#     print(‘from bar‘)#def foo():#     print(‘from foo‘)#     bar()#foo()

# # 例3def foo():#     print(‘from foo‘)#     bar()#def bar():#     print(‘from bar‘)#foo()

例4def foo():#     print(‘from foo‘)#     bar()#foo()#def bar():#     print(‘from bar‘)--------------------------------06 函数的定义的三种形式.py--------------------------------

#定义函数时的参数就是函数体接收外部传值的一种媒介,其实就一个变量名

#1、无参函数:在函数定义阶段括号内没有参数,称为无参函数注意:定义时无参,意味着调用时也无需传入参数应用:#如果函数体代码逻辑不需要依赖外部传入的值,必须定义无参函数

def func():#     print(‘hello world‘)func()

#2、有参函数在函数定义阶段括号内有参数,称为有参函数注意:定义时有参,意味着调用时也必须传入参数应用:#如果函数体代码逻辑需要依赖外部传入的值,必须定义成有参函数def sum2(x,y):#     # x=10#     # y=20#     res=x+y#     print(res)#sum2(10,20)sum2(30,40)

def check_user():    while True:        uname=input(‘username>>:‘).strip()        if uname.isalpha():            return uname            # break        else:            print(‘用户名必须由字母组成傻叉‘)

def check_pwd():    while True:        pwd1=input(‘密码>>: ‘).strip()        pwd2=input(‘重复输入密码>>: ‘).strip()        if pwd1 == pwd2:            return pwd1        else:            print(‘两次输入的密码不一致,眼瞎吗‘)

def db_hanle(uname,pwd1):    with open(‘db.txt‘,‘at‘,encoding=‘utf-8‘) as f:        f.write(‘%s:%s\n‘ %(uname,pwd1))        f.flush()

def register():    # 检测用户名是否合法    x=check_user() #x=‘EGON‘    # 检测密码是否合法    y=check_pwd() #y=‘123‘

# 写入数据文件    # db_hanle(合法的用户名,合法的密码)    db_hanle(x,y)

register()

#3、空函数

def func():#     pass

def check_user():    pass

def check_pwd():    pass

def write_db(x,y):    pass

def register():    #1 输入用户名,并进行合法性校验    #2 输入密码,并进行合法性校验    #3 将合法的用户名、密码写入文件    x=check_user()    y=check_pwd()    write_db(x,y)

原文地址:https://www.cnblogs.com/zhangmingyan/p/9142570.html

时间: 2024-10-11 04:19:33

08文件操作(了解)+出识函数的相关文章

08 文件操作

本节主要内容: 1. 初识文件操作 2.只读(r, rb) 3.只写(w, wb) 4.追加(a, ab) 5.r+读写 6.w+写读 7.a+写读(追加写读) 8.其他操作方法(seek(n)光标移动到n位置, tell()获取光标的位置, truncate()截断文件) 9.文件的修改以及另一种打开文件句柄的方式 主要内容:?一. 初识?文件操作使?用python来读写?文件是非常简单的操作. 我们使?用open()函数来打开?一个?文件, 获取到?文件句句柄. 然后通过?文件句句柄就可以进

Linux文件操作的常用系统函数说明

1. open打开文件 (man 2 open 查看) int open(const char *pathname, int flags); //pathname文件名(路径):flags打开模式,有O_RDONLY, O_WRONLY, O_RDWR int open(const char *pathname, int flags, mode_t mode); //该函数一般用于创建新文件,flags添加O_CREAT,比如:O_RDWR|O_CREAT int creat(const cha

day 08 文件操作

一,初识文件操作: 用open()来打开一个文件,获取到文件句柄,然后通过文件句柄进行各种操作,需要注意的是读取完的文件句柄一定要关闭,使用 f.close() 打开?文件的?方式: r, w, a, r+, w+, a+, rb, wb, ab, r+b, w+b, a+b 默认使?用的是r(只读)模式 二,只读操作: 1. r :只读模式 建一个文件名为"哈哈哈"的文件,然后读一下: f = open("哈哈哈",mode="r",encod

python之路---08 文件操作

二十六.   文件 f = open(文件路径,mode = '模式',encoding = '编码格式') 1.基础 ① 读写时,主要看光标的位置 ②操作完成要写    f.close( ) f.flush( ) ③f  文件句柄是一个可迭代对象  可用for 循环 ④要用  \n  进行增减空白 2.文件路径 ① 相对路径:.相对于当前程序所在的文件夹,如果在文件夹内,直接写名字 不在时,需要出文件或进文件 文件名 /        进文件 ../            出文件 ②绝对路径:

C语言中数据输入输出到文件操作freopen()函数(1)

例题一.把短句 "Hello World!" 保存到磁盘文件f1.txt中. #include <stdio.h> #include <stdlib.h> int main() { FILE *fp; /* 定义文件指针*/ if( ( fp = fopen("f1.txt", "w") ) == NULL){ /* 打开文件 */ printf("File open error!\n"); exit(

python note 08 文件操作

1.相对路径与绝对路径比较 #绝对路径 f = open('d:\pzw.txt',mode='r',encoding='UTF-8') content = f.read() print(content) f.close() #相对路径 f = open('pzw',mode='r',encoding='utf-8') content = f.read() print(content) f.close() 2. #对于r就是只读 f = open('pzw',mode='rb',) conten

python之路3:文件操作和函数基础

文件操作 字符编码解码 函数基础 内置函数 一.文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读:不存在则创建:存在则只追加内容:] "+" 表示可以同时读写某个文件 r+,可读写文件.[可读:可写:可追加] w+,写读 a+,追加可写 "U"表示在读取时,可以将 \r \n \r\n自动转换成

python之集合、深浅copy、文件操作、函数初识

本节内容:集合.深浅copy.文件操作.函数初识 1.小知识点补充 2.编码二 3.集合 4.深浅copy 5.文件操作 6.函数的初识 1.小知识点补充                                                                                           1.1 小数据池====str.int 小数据池存在的意义就是节省内存 节省内存,位多个变量开辟一个共享空间(str和int) int:-5--256 int===

C++文件操作(转)

第一个:简单,容易理解,常用:http://www.cnblogs.com/uniqueliu/archive/2011/08/03/2126545.html 第二个:详细的,如下: 文件文件的基本概念 所谓“文件”是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名. 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件.库文件 (头文件)等.文件通常是驻留在外部介质(如磁盘等)上的, 在使用时才调入内存中来.从不同的角度可对文件作不同的分类.从用户的角度