python基础学习(4)—文件处理

python学习基础之文件处理

文件和目录管理

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
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值