#!/usr/bin/env python
# -*- coding:utf-8 -*-
#文件操作
# stream=open('E:\\Pycharm\\123.txt')
#
#
# container=stream.read()
# print(container)
#
#
# while 1:
# result = stream.readline()
# if result:
# print(result)
# else:
# break
#
# result=stream.readlines()
# print(result)
# for i in result:
# print(i)
#'w'操作会清空原内容,'a'不会清空,append
# stream=open('E:\\Pycharm\\123.txt','w')
# s=''' #三个引号,表示字符串原格式
# 您好,欢迎来到澳门博彩,性感荷官,在线发牌!
# 赌神:发哥
# '''
# result=stream.write(s)
#
# stream.close()
# #文件的复制
# with open(r'E:\安大的四年\图片\1.png','rb') as stream: #结合open使用,自动释放资源
# container=stream.read()
# with open(r'E:\\Pycharm\\1.png','wb')as wstream:
# wstream.write(container)
import os
# # print(os.path)
# path=os.path.dirname(__file__) #是当前文件夹所在目录
# # print(path)
# # print(type(path)) #是字符串str类型
# result=os.path.join(path,'1.png') #拼接文件名,因为open只能打开文件
# print(result)
# with open(r'E:\安大的四年\图片\1.png','rb') as stream: #结合open使用,自动释放资源
#
# print(stream.name)
# file=stream.name
# filename=file[file.rfind('\\')+1:] #截取文件名
# print(filename)
# container=stream.read()
# with open(result,'wb')as wstream:
# wstream.write(container)
result=os.path.split(__file__)
print(result)
print(result[1])
result1=os.path.splitext(__file__) #获取文件类型
print(result1)
#绝对路径:absolute
import os
s=os.path.isabs('E:\安大的四年\图片\1.png') #判断是否为绝对路径
print(s)
#相对路径
r=os.path.isabs(r'venv\001.py')
print(r) #输出False
t=os.path.isabs(r'..\001.py') #找跟005.py同级的文件
print(t)
#获取当前文件的路径 directory=目录
# path=os.path.dirname(__file__) #E:\Pycharm\python100题\代码
# print(path)
# path=os.path.abspath(__file__) #E:\Pycharm\python100题\代码\005.py
# print(path)
#
#
# path=os.getcwd(__file__) #等于dirname()
path=r'E:\Pycharm\python100题\代码\005.py'
# result=os.path.split(path)
# print(result) #('E:\\Pycharm\\python100题\\代码', '005.py')元组 ,等价result=path[path.rfind(\\'+1:]
#
# result=os.path.splitext(path) #('E:\\Pycharm\\python100题\\代码\\005', '.py') 获得后缀名
# print(result)
#
#
# size=os.path.getsize(path) #获得文件的大小,单位为字节
# print(size)
#os的函数
#os.listdir()
name=os.listdir(r'E:\Pycharm\python100题\代码') #返回指定文件夹下的所有文件到列表里
print(name)
#创建文件夹
os.mkdir(r'E:\Pycharm\python100题\代码\新建文件夹')
#删除文件夹
os.rmdir(r'E:\Pycharm\python100题\代码\新建文件夹') #只能删除空文件夹
os.remove(r'E:\Pycharm\python100题\代码\1.png') #删除文件夹目录下的文件
#切换目录
os.chdir(path)#changedirectory 类似于cmd下的cd
#持久化保存
#用户注册:
def register():
username=input('请输入用户名:')
password=input('请输入密码:')
repassword=input('请输入确认密码:')
if password==repassword:
with open(r'E:\Pycharm\python100题\代码\book\users.txt','a') as astream: #使用a不会覆盖之前的内容
astream.write('{} {}\n'.format(username,password))
print('用户注册成功')
else:
print('密码不一致!')
def login():
username=input('请输入用户名:')
password=input('请输入密码:')
if username and password:
with open(r'E:\Pycharm\python100题\代码\book\users.txt', 'r') as rstream:
while 1:
user=rstream.readline() #admin 123456\n
if not user:
print('密码输入有误')
break
input_user='{} {}\n'.format(username,password)
if user==input_user:
print('用户登陆成功')
break
#login()
def show_books():
print('图书馆里面的图书有:')
with open(r'E:\Pycharm\python100题\代码\book\books.txt', 'r',encoding='UTF-8') as rstream:
# UnicodeDecodeError: 'gbk' codec can't decode byte 0xa0 in position 50: illegal multibyte sequence
# 报错,在后面加一个encoding='UTF-8',或者把改成rb
books=rstream.readlines()
for book in books:
print(book,end='') #end=''表示不需要再换行,因为readlines是一个列表,列表每一个元素后都有一个\n