文件和目录管理
python能够快速大量地处理计算机系统中地文件与文件夹,可以用OS包进行目录地创建与删除、文件删除、执行操作系统等操作。
项目 |
功能 |
os |
提供了创建目录、删除目录、删除文件、执行操作系统命令等方法 |
os.path |
用于处理文件路径及路径名称并检查其是否存在,计算文件大小 |
os.walk |
用于搜索指定目录及其子目录 |
shutil |
相较于os具有更强的处理力,且可跨平台 |
glob |
可返回指定文件的文件列表 |
os
"""
该文件默认的位置是在D:/python的目录下,
我们先在对应文件目录下创建一个123.txt,
然后利用程序删除该文件。
之后再运行该程序时应该弹出”123.txt文件没找到“字样。
@author: hellowentao
"""
import os
file ="123.txt"
if os.path.exists(file):
os.remove(file)
else:
print(file+"文件没找到")
runfile('D:/python学习/untitled11.py', wdir='D:/python学习')
runfile('D:/python学习/untitled11.py', wdir='D:/python学习')
123.txt文件没找到
"""
执行操作系统命令
@author: hellowentao
"""
import os
cur_path=os.path.dirname(__file__)
os.system("cls")#清除屏幕
os.system("mkdir dir2")#创建目录
os.system("copy remove.py dir2\copyfile.py")#复制文件并对其重命名
file=cur_path + "\dir2\copyfile.py"
print(file)
os.system("notepad"+file)#记事本打开文件
os.path
"""
os.path用于处理文件路径及路径名称并检查其是否存在,计算文件大小
@author: hellowentao
"""
import os
cur_path=os.path.dirname(__file__)
print("当前目录路径为:"+cur_path)
filename=os.path.abspath("system.py")
if os.path.exists(filename):#判断文件是否存在
print("完整路径名称:"+filename)
print("文件大小",os.path.getsize(filename))#返回指定文件大小
basename=os.path.basename(filename)#返回路径名最后部的文件或者路径名
print("路径最后的文件名为:"+filename)
dirname=os.path.dirname(filename)#返回指定文件的完整路径名
print("当前文件目录路径为:"+dirname)
print("是否为目录:",os.path.isdir(filename))#检查指定路径是否为目录
fullpath,fname=os.path.split(filename)#划分为路径和文件
print("目录路径:"+fullpath)
print("文件名为:"+fname)
Drive,fpath=os.path.splitdrive(filename)#划分为磁盘名和路径名
print("盘名:"+Drive)
print("路径名:"+fpath)
fullpath=os.path.join(fullpath+"\\"+fname)#将路径名和文件名合并成完整路径
print("合并路径="+fullpath)
结果如下:
当前目录路径为:D:\python学习\chapter4文件处理及SQLite数据库
完整路径名称:D:\python学习\chapter4文件处理及SQLite数据库\system.py
文件大小 375
路径最后的文件名为:D:\python学习\chapter4文件处理及SQLite数据库\system.py
当前文件目录路径为:D:\python学习\chapter4文件处理及SQLite数据库
是否为目录: False
目录路径:D:\python学习\chapter4文件处理及SQLite数据库
文件名为:system.py
盘名:D:
路径名:\python学习\chapter4文件处理及SQLite数据库\system.py
合并路径=D:\python学习\chapter4文件处理及SQLite数据库\system.py
os.walk
"""
os.walk用于搜索指定目录及其子目录
@author: hellowentao
"""
import os
cur_path=os.path.dirname(__file__)
sample_tree=os.walk(cur_path)
for dirname,subdir,files in sample_tree:
print("文件路径:",dirname)
print("目录列表:",subdir)
print("文件列表:",files)
print()
结果如下
文件路径: D:\python学习\chapter4文件处理及SQLite数据库\oswalk
目录列表: ['dir']
文件列表: ['31.txt', '32.txt', 'oswalk.py']
文件路径: D:\python学习\chapter4文件处理及SQLite数据库\oswalk\dir
目录列表: ['subdir']
文件列表: ['21.txt', '22.txt']
文件路径: D:\python学习\chapter4文件处理及SQLite数据库\oswalk\dir\subdir
目录列表: []
文件列表: ['1.txt']
open打开文件
文件操作的应用之账号和密码的管理
# -*- coding: utf-8 -*-
"""
该程序可实现账号和密码的管理,可输入、修改删除以及显示账号和密码。
"""
"""
定义选项菜单
"""
def menu():
os.system("cls")
print("账号、密码管理系统")
print("------------------------------")
print("1.输入账号、密码")
print("2.显示账号、密码")
print("3.修改账号、密码")
print("4.删除账号、密码")
print("0.结束程序")
print("------------------------------")
"""
将文件数据准换位字典数据
"""
def ReadData():
with open('123.txt','r',encoding='UTF-8-sig') as f:
filedata=f.read()
if (filedata !=""):
data = ast.literal_eval(filedata)
return data
else:
return dict()
"""
显示账号和密码
"""
def disp_data():
print("账号\t密码")
print("===================")
for key in data:
print('{}\t{}'.format(key, data[key]))
input("按任意键返回主菜单")
"""
输入账号和密码
"""
def input_data():
while 1:
name = input("请输入账号(Enter==>停止输入")
if name =="":break
if name in data :
print("{}账号已存在!".format(name))
continue
password = input("请输入密码")
data[name]=password
with open("password.txt","w",encoding='UTF-8-sig')as f:
f.write(str(data))
print("{}已保存完毕".format(name))
"""
修改账号和密码
"""
def edit_data():
while 1:
name = input("请输入需要修改的账号(Enter==>停止输入)")
if name=="":break
if not name in data:
print("{}账户不存在!".format(name))
continue
print("原密码为:{}".format(data[name]))
password=input("请输入新密码:")
data[name]=password
with open('password.txt','w',encoding = 'UTF-8-sig')as f:
f.write(str(data))
input("密码更改完毕,请按任意键返回主菜单")
break
"""
删除账号和密码
"""
def delete_data():
while 1:
name = input("请输入需要删除的账号(Enter==>停止输入)")
if name=="":break
if not name in data:
print("{}账户不存在!".format(name))
continue
print("确认删除{}的数据?".format(name))
yn=input("(Y/N)?")
if (yn=="Y" or yn=="y"):
del data[name]
with open('password.txt','w',encoding = 'UTF-8-sig')as f:
f.write(str(data))
input("已删除完毕,请按任意键返回主菜单")
break
import os,ast
data=dict()
data=ReadData()
while True:
menu()
choice=int(input('请输入您的选择:'))
print ()
if choice==1:
input_data()
elif choice==2:
disp_data()
elif choice==3:
edit_data()
elif choice==4:
delete_data()
else:break
print("程序执行完毕!")
结果显示如下:
------------------------------
1.输入账号、密码
2.显示账号、密码
3.修改账号、密码
4.删除账号、密码
0.结束程序
------------------------------
请输入您的选择:1
请输入账号(Enter==>停止输入taotao
请输入密码1314520
taotao已保存完毕
请输入账号(Enter==>停止输入fff
请输入密码5201314
fff已保存完毕
请输入账号(Enter==>停止输入ft
请输入密码987654321
ft已保存完毕
请输入账号(Enter==>停止输入
账号、密码管理系统
------------------------------
1.输入账号、密码
2.显示账号、密码
3.修改账号、密码
4.删除账号、密码
0.结束程序
------------------------------
请输入您的选择:2
账号 密码
===================
taotao 1314520
fff 5201314
ft 987654321
按任意键返回主菜单3
账号、密码管理系统
------------------------------
1.输入账号、密码
2.显示账号、密码
3.修改账号、密码
4.删除账号、密码
0.结束程序
------------------------------
请输入您的选择:3
请输入需要修改的账号(Enter==>停止输入)daf
daf账户不存在!
请输入需要修改的账号(Enter==>停止输入)fer
fer账户不存在!
请输入需要修改的账号(Enter==>停止输入)taotao
原密码为:1314520
请输入新密码:131452zwt
密码更改完毕,请按任意键返回主菜单
账号、密码管理系统
------------------------------
1.输入账号、密码
2.显示账号、密码
3.修改账号、密码
4.删除账号、密码
0.结束程序
------------------------------
请输入您的选择:4
请输入需要修改的账号(Enter==>停止输入)ft
确认删除ft的数据?
(Y/N)?y
已删除完毕,请按任意键返回主菜单
账号、密码管理系统
------------------------------
1.输入账号、密码
2.显示账号、密码
3.修改账号、密码
4.删除账号、密码
0.结束程序
------------------------------
请输入您的选择:2
账号 密码
===================
taotao 131452zwt
fff 5201314