Python 文件基础操作

python文件操作

1.打开文件

open(r'C:a/b/c.txt') 

在windows下“\”是转义字符,所以添加 r 可以去除转义效果
如果不加 r 可以将所有右斜杠换成左斜杠

2.读取文件

r是文件可读
t是文本模式

f=open('1.txt',mode='rt',encoding='utf-8')
res=f.read()
print(res)

3.关闭文件

关闭文件,回收空间

f.close()
del f

一般情况下
因为操作系统的打开文件数会影响性能
所以关闭文件是必要的
回收空间可以省略

4.我们可以通过with方法去对context管理

with open('1.txt',mode='rt',encoding='utf-8') as f1:
    res=f1.read()
    print(res)

在with语句中,会自动关闭文件,不需要手动输入


也可以同时打开多个文件

with open('1.txt',mode='rt',encoding='utf-8') as f1,\
        open('2.txt',mode='rt',encoding='utf-8') as f2:
    res_1 = f1.read()
    res_2 = f2.read()
    print(res_1,res_2)

5 t模式

以字符串为单位,并且要有encoding
没有指定时,会使用默认解码
linux mac使用utf-8
windows 使用gbk

6.操作模式

r模式 只读模式

文件不存在时会报错,并且read方式会从开始读到结束,对于较大文件时会使内存爆炸。

案例 :登录操作


单用户操作
建立1.txt文件存储用户名,密码
Python 文件基础操作_第1张图片
对文件进行操作

#coding:utf-8
input_user=input('username:').strip()
input_pass=input('password:').strip()
with open('1.txt',mode='rt',encoding='utf-8') as f :
    res=f.read()
    username,password = res.split(':')
    # print(username,password)

if  input_user == username and input_pass == password:
    print("login successful")
else:
    print("login error")

多用户操作
Python 文件基础操作_第2张图片

#coding:utf-8
input_user=input('username:').strip()
input_pass=input('password:').strip()
with open('1.txt',mode='rt',encoding='utf-8') as f :
    for line in f:
        username,password=line.strip().split(':') #strip去除换行符 并且‘:’分割
        if input_user == username and input_pass == password:
            print("login successful")
            break
    else:
        print("login error")

W模式

文件不存在时会创建空文件;
存在时会清空文件,指针位于开始。是一个先清空文件再打开的过程,不用用W模式打开重要文件。

with open('3.txt',mode='wt',encoding='utf-8') as f:
    f.write('ohoh')

适用于更新数据文件,或者是写新文件


a模式

不能读,只可把新内容加到末尾
在文件不存在时,创建空文档;
存在时,指针指到末尾

记录日志,账号和密码注册

案例 —简单注册

输入用户名,密码存入db.txt文件中

#coding:utf-8
user=input("username: ")
pwd=input("password: ")
with open('db.txt',mode='at',encoding='utf-8') as f:
    f.write('{}:{}\n11'.format(user,pwd))

替换文本中文字

对1.txt文件中字符进行替换

# coding:utf-8
import os
with open("1.txt", mode="rt", encoding="utf-8")as f,\
        open('.1.txt.swap', mode='wt',encoding="utf-8")as f1:
    for line in f:
        f1.write(line.replace('fkr', 'lqw'))

os.remove('1.txt')
os.rename('.1.txt.swap', '1.txt')

你可能感兴趣的:(python,python)