Python学习08

文件操作

# 文件操作
'''
1.文件路径 d:/a.txt
2.编码方式 utf-8 gbk
3.操作方式 只读 只写 追加 读写 写读
'''
# 绝对路径
# f = open('/Users/yunhaoguo/Desktop/主妇.txt', mode='r', encoding='utf-8')
# content = f.read()
# print(content)
# f.close()
# 相对路径
# bytes -> str
f = open('文件操作', mode='r', encoding='utf-8')
content = f.read()
print(content)
f.close()

# bytes只读:rb 不管怎么存的直接读 比如可以用来读图片文件
f = open('文件操作', mode='rb')
content = f.read()
print(content)
c = content.decode('utf-8')
print(c)
f.close()

# 只写 w 没有此文件就创建,如果有此文件就清除再写
f = open('只写测试文件', mode='w', encoding="utf-8")
f.write('只写')
f.close()
# bytes写
# f = open('只写测试文件', mode='wb')
# f.write('写'.encode('utf-8'))
# f.close()

# 追加
f = open('追加文件', mode='a', encoding="utf-8")
f.write('追加的内容')
f.close()
# bytes追加
f = open('只写测试文件', mode='ab')
f.write(''.encode('utf-8'))
f.close()

# 读写 追加写 写完以后没法再读
f = open('读写', mode='r+', encoding='utf-8')
print(f.read())
f.write('读了以后写')
f.close()

# 写读 写是清除内容后写,读的时候光标移动到了末尾,所以读不出内容,只有把光标调节到开始才能读
# a+ 是追加写读
f = open('写读', mode='w+', encoding='utf-8')
f.write('写读')
f.seek(0)
content = f.read()
print(content)
f.close()
# bytes读写
f = open('读写佰特', mode='r+b')
print(f.read())
f.write('bytes写'.encode('utf-8'))
f.close()
# 删除文件和重命名文件
import os
os.remove('写读')
os.rename('重命名','新名字')

功能详解

# 功能详解
f = open('功能详解', mode='r+', encoding='utf-8')
# seek()中的参数是按照字节数
f.seek(3)
# f.tell()告诉你光标的位置
print(f.tell())
# read()中参数是字符个数
content = f.read(3)
print(content)
f.close()

# 写完以后读最后三个字
f = open('功能详解', mode='a+', encoding='utf-8')
f.write('guodage')
count = f.tell()
f.seek(count - 3)
print(f.read())
f.close()


# readlines() 每一行当做列表的一个元素添加到列表中
# readline() 读一行
# truncate(2) 截取 只要位置0到2的内容
f = open('功能详解', mode='r+', encoding='utf-8')
# 一行行读
for line in f:
    print(line)
f.close()

# 以下方法不用close,自动关闭,且可以同时打开多个
with open('功能详解', mode='r+', encoding='utf-8') as f, \
        open('功能详解', mode='r+', encoding='utf-8') as f1:
    print(f.read())

文件存储注册登录的简单实现

# 注册登录
menu = '''
        1.注册
        2.登录
    '''
print(menu)
option = input("请输入您想进行的操作")
if option == '1':
    name = input("请输入用户名")
    password = input("请输入密码")
    with open("info.txt", mode='w+', encoding='utf-8') as f:
        f.write(name + ' ' + password)
    print('注册成功')
elif option == '2':
    save_name = ''
    save_pass = ''
    with open("info.txt", mode='r+', encoding='utf-8') as f:
        lis = f.read().split(' ')
        save_name = lis[0]
        save_pass = lis[1]
    count = 3
    while 1:
        name = input("请输入用户名")
        password = input("请输入密码")
        if name == save_name and password == save_pass:
            print("登陆成功!!!")
            break
        else:
            print("没有此用户")
            count -= 1
            if count == 0:
                break
else:
    print("没有这个选项")

 

posted @ 2018-07-14 16:12  Eric云皓  阅读(78)  评论(0)    收藏  举报