python3.2实现简单文件/目录操作

操作系统的课程设计,要写报告贴代码,发现把这个上面的格式化后的代码贴到word文档里面特别漂亮,就只好把代码先贴这儿来了

废话少说,直接上代码(FileManage.py):

#!/usr/bin/env python3
import os,os.path
import string,base64
def showhelp():  #显示帮助目录
	while True:
		print("=========显示帮助=========")
		print("1---创建新文件")
		print("2---写入文件")
		print("3---显示文件内容")
		print("4---重命名文件或目录")
		print("5---删除文件")
		print("6---新建目录")
		print("7---删除目录")
		print("8---列出文件")
		print("9---切换目录")
		print("0---退出程序")
		print("===========================")

		option=input("请输入操作选项:")
		if(option=='0'):
			usr_logout()
		elif(option=='1'):
			file_create()
		elif(option=='2'):
			file_write()
		elif(option=='3'):
			file_read()
		elif(option=='4'):
			rename()
		elif(option=='5'):
			file_rm();
		elif(option=='6'):
			dir_create();
		elif(option=='7'):
			dir_del();
		elif(option=='8'):
			dir_list()
		elif(option=='9'):
			dir_change()
		else:
			print("请输入有效的操作选项!")

def file_create(): #创建新文件
	filename=input("请输入您想创建的文件名:")
	if(os.path.exists(filename)):
		print("该文件已存在!\n")
	else:
		f=open(filename,'w')
		f.close()
		print("文件创建成功!\n")

def file_write():  #写入文件
	filename=input("请输入您想要写入内容的文件:")
	if((os.path.exists(filename))==False):
		opt=input("指定的文件不存在,是否创建新文件?(y/n):")
		if(opt=='y'):
			f=open(filename,'w')
			input_str=input("请输入内容:\n")
			f.write(input_str)
			f.close()
	else:
		f=open(filename,'a')
		input_str=input("请输入内容:('##'结束):\n")
		while(input_str!='##'):
			f.write(input_str+"\n")
			input_str=input()
		f.close()
		print("写入成功!")

def file_read():  #显示文件内容
	filename=input("请输入文件名:")
	if(os.path.exists(filename)):  #检查指定文件是否存在
		f=open(filename,'r')       #存在则按照要求显示起内容
		for eachline in f:
			print(eachline)
		f.close()
	else:
		print("文件不存在!\n")

def rename():  #重命名文件或目录
	filename=input("请输入您想重命名的文件或目录名称:")
	if(os.path.exists(filename)):     #检查指定文件或目录是否存在
		newname=input("请输入新名称:")
		os.rename(filename,newname)   #存在则按要求将其重命名
		print("重命名成功!\n")
	else:
		print("文件或目录不存在!\n")

def file_rm():  #删除文件
	filename=input("请输入您想要删除的文件名称:")
	if(os.path.exists(filename)):  #检查指定文件是否存在
		os.remove(filename)        #存在则删除
		print("删除成功!\n")
	else:
		print("文件不存在!\n")

def dir_create():  #创建新目录
	dirname=input("请输入目录名称:")
	if(os.path.exists(dirname)):  #检查目录是否已经存在
		print("目录已存在!\n")
	else:
		os.mkdir(dirname)         #不存在则按照要求新建该目录
		print("目录创建成功!\n")

def dir_del():  #删除目录
	dirname=input("请输入要删除的目录名称:")
	if(os.path.exists(dirname)):  #如果目录存在则删除
		os.system('rm -rfv '+dirname) #递归删除目录并显示删除过程
		print("目录已删除!\n")
	else:
		print("目录不存在!\n")   #指定目录不存在,提示出错

def dir_list():  #列出目录中的文件和子目录
	dirname=input("请输入目录名称('='代表当前目录):")
	if(dirname=="="):
		print(os.getcwd())
		os.system('ls -la')#print(os.listdir(os.getcwd()))
	elif (os.path.isdir(dirname)):
		print(os.getcwd())
		os.system('ls -la '+dirname)#print(os.listdir(dirname))
	else:
		print("请输入有效的路径!\n")

def usr_logout():  #退出程序
	exit()

def dir_change():
	dirname=input("请输入要切换到的绝对路径('..'代表上一级目录):")
	if(dirname=='..'):
		os.chdir(os.getcwd().split()[0])
	if(os.path.exists(dirname)):
		os.chdir(dirname)
	else:
		print("请输入有效的路径!")

def usr_regist():  #用户注册
	flag=False  #用户不存在,可以注册新用户的标志
	user_name=input("请输入用户名:")
	if((os.path.exists(".user.conf"))==False): #如果用户配置文件不存在,则创建配置文件
		f=open(".user.conf",'w')
		f.close()
	f=open(".user.conf",'r')
	for eachline in f:
		if(eachline.split(":")[0]==user_name):  #判断用户名是否已经存在
			print("用户已存在!!\n")
			flag=True  #用户已存在的标志
			f.close()
			break
	f.close()
	if(flag==False):  #如果用户不存在,则创建新用户
		user_password=input("请输入密码:")
		f=open(".user.conf",'a')
		#用户名与密码之间用":"隔开,密码用标准base64加密
		u_name_password=user_name+":"+base64.standard_b64encode(user_password.encode('ascii')).decode()
		f.write(u_name_password+"\n")
		f.close()
		os.mkdir(user_name)    #注册成功后建立该用户的主目录
		os.chdir(user_name)    #并将工作目录切换到用户主目录
		print(user_name+"注册成功!")
		showhelp()

def usr_login():  #用户登录
	while True:
		opt=input("请选择操作('r'--注册;'l'--登录):")
		if(opt=="r"):  #如果选'r',则进入“注册”模块
			usr_regist()
		elif(opt=="l"):
			u_name=input("用户名:")
			u_passwd=input("密  码:")
			f=open(".user.conf",'r')
			for eachline in f:
				user_info=eachline.split(":")
				if(u_name==user_info[0]): #如果用户名匹配,再去验证密码
					#输入密码用标准base64加密之后匹配则登录成功
					if((base64.standard_b64encode(u_passwd.encode('ascii')).decode()+"\n")==user_info[1]):
						print("登录成功!")
						os.chdir(u_name)
						showhelp()
					else:
						print("密码错误!")  #密码不匹配,提示出错
						break
				if(eachline==''):
					print("不存在该用户!")  #读到文件结尾没发现匹配的用户名,报错
					break
			f.close()
		else:
			print("请输入正确的操作选项!")

def main():  #main函数
	usr_login()

if __name__=='__main__':
	main()


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值