python 文件操作练习

简介:

参考一兄弟写的文章进行练习:http://blog.51cto.com/000011211684/2052701

主要目的,熟悉文件列表的增、删、改操作……


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# python 3.6 文件打开操作练习
#  date:2017-12-26
# _*_ coding:utf-8 _*_
 
import  os,sys
 
def  find():
     find_name  =  input ( "请输入要查询的员工姓名:" ).strip().upper()
     flag = False
     with  open ( "info.txt" , 'r' ,encoding = 'utf-8' ) as f1:
         for  line  in  f1:
             if  line.split()[ 0 ] = = find_name:
                 flag = True
                 print ( "员工姓名:" ,find_name, "\t工资:" ,line.split()[ 1 ])
             else :
                 continue
     if  not  flag:
         print ( "未找到员工信息:\033[31;1m{_name}\033[1m" . format (_name = find_name))
 
def  modify():
     flag  =  False
     mod_info1 = input ( "请输入要修改的员工姓名:" ).strip().upper()
     with  open ( "info.txt" 'r' , encoding = 'utf-8' ) as f1 , \
         open ( "info_new" 'w' , encoding = 'utf-8' ) as f2:
         for  line  in  f1:
             if  mod_info1  = = line.split()[ 0 ]:
 
                 mod_info2  =  input ( "请输入修改后的工资:" ).strip()
                 if  not  mod_info2.isdigit():   #判断输入是否为数字
                     print ( "请输入一个数字!!" )
                     sys.exit()   #需等待完善优化,下同
                 else :
                     f2.write(mod_info1 + '\t' + mod_info2 + '\n' )
                     flag  =  True
             else :
                  f2.write(line)
     if  os.path.exists( 'info_bak.txt' ):os.remove( "info_bak.txt" #如果存在则删除
     os.rename( "info.txt" , "info_bak.txt" )
     os.rename( "info_new" , "info.txt" )
     if  flag:
          print ( "修改成功" )
     else :
          print ( "未找到员工信息:\033[31;1m{_name}\033[1m" . format (_name = mod_info1))
 
def  add():
     flag  =  False
     add_info1  =  input ( "请输入要增加的员工姓名:" ).strip().upper()
     with  open ( "info.txt" 'r' , encoding = 'utf-8' ) as f1 :
         for  line  in  f1:
             if  add_info1  = =  line.split()[ 0 ]:
                 flag  =  True
             else :
                 continue
     if  flag:
         print ( "员工\033[31;1m{_name}\033[1m信息已存在" . format (_name = add_info1))
     else :
         with  open ( "info.txt" 'a' , encoding = 'utf-8' ) as f2 :
             add_info2  =  input ( "请输入工资:" ).strip()
             if  not  add_info2.isdigit():   # 判断输入是否为数字
                 print ( "请输入一个数字!!" )
                 sys.exit()
             else :
                 f2.write(add_info1  +  '\t'  +  add_info2  +  '\n' )
                 print ( "增加成功!!" )
 
def  dele():
     flag  =  False
     del_info1  =  input ( "请输入要删除的员工姓名:" ).strip().upper()
     with  open ( "info.txt" , 'r' ,encoding = 'utf-8' ) as f1 ,\
         open ( 'info_new' , 'w' ,encoding = 'utf-8' ) as f2:
         for  line  in  f1:
             if  line.split()[ 0 = =  del_info1:
                 flag = True
                 continue
             else :
                 f2.write(line)
     if  os.path.exists( 'info_bak.txt' ):os.remove( "info_bak.txt" #如果存在则删除
     os.rename( "info.txt" , "info_bak.txt" )
     os.rename( "info_new" , "info.txt" )
     if  flag:
         print ( "删除成功!!" )
     else :
         print ( "未找到员工信息:\033[31;1m{_name}\033[1m" . format (_name = del_info1))
 
def  main():
     menu = {
         '1' :find,
         '2' :modify,
         '3' :add,
         '4' :dele,
         '5' :exit
     }
     while  True :
         print ( """
         请选择:
         1,查询员工信息
         2,修改员工信息
         3,增加员工信息
         4,删除员工信息
         5,退出系统
         """  )
         choice = input ( '>>>>' ).strip()
         if  choice  in  menu:
             menu[choice]()
if  __name__ = = "__main__" :
     main()
















本文转自pimg200551CTO博客,原文链接:http://blog.51cto.com/pimg2005/2054761  ,如需转载请自行联系原作者

相关文章
|
10月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
2160 2
|
9月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
1488 68
|
12月前
|
安全 Python
Python语言中常用的文件操作方法探讨
通过上述方法的结合使用,我们可以构筑出强大并且可靠的文件操作逻辑,切实解决日常编程中遇到的文件处理问题。
389 72
|
12月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
|
12月前
|
编译器 Python
如何利用Python批量重命名文件
本文介绍了如何使用Python和PyCharm对文件进行批量重命名,包括文件名前后互换、按特定字符调整顺序等实用技巧,并提供了完整代码示例。同时推荐了第三方工具Bulk Rename Utility,便于无需编程实现高效重命名。适用于需要处理大量文件命名的场景,提升工作效率。
|
12月前
|
移动开发 安全 Linux
Python文件操作的"保险箱":with语句深度实战指南
本文深入解析Python中`with`语句的原理与高级应用,通过“保险箱”类比,形象展示资源管理机制。从上下文管理协议到实战场景,涵盖文件、数据库、网络等多种资源的高效安全处理方式,助你写出更优雅、可靠的代码。
251 1
|
11月前
|
缓存 数据可视化 Linux
Python文件/目录比较实战:排除特定类型的实用技巧
本文通过四个实战案例,详解如何使用Python比较目录差异并灵活排除特定文件,涵盖基础比较、大文件处理、跨平台适配与可视化报告生成,助力开发者高效完成目录同步与数据校验任务。
330 0
|
编解码 Prometheus Java
当Python同时操作1000个文件时,为什么你的CPU只用了10%?
本文介绍如何构建一个高效的文件处理系统,解决单线程效率低、多线程易崩溃的矛盾。通过异步队列与多线程池结合,实现任务调度优化,提升I/O密集型操作的性能。
298 4
|
人工智能 索引 Python
[oeasy]python094_使用python控制音符列表_midi_文件制作
本文介绍了如何使用Python控制音符列表制作MIDI文件。首先回顾了列表下标索引(正数和负数)的用法,接着通过`mido`库实现MIDI文件生成。以《两只老虎》为例,详细解析了代码逻辑:定义音高映射、构建旋律列表、创建MIDI文件框架,并将音符插入音轨。还探讨了音符时值与八度扩展的实现方法。最终生成的MIDI文件可通过不同平台播放或编辑。总结中提到,此技术可用于随机生成符合调性的旋律,同时引发对列表其他实际应用的思考。
517 5
|
缓存 数据库连接 数据库
Python文件操作的“保险箱”:with语句深度实战指南
本文深入探讨Python中with语句在文件操作中的应用及其优势。首先介绍其底层原理,基于上下文管理协议自动管理资源的获取与释放,避免手动关闭文件导致的资源泄漏问题。接着通过基础文件读写、异常处理进阶和复合资源管理等实战场景解析with语句的便捷性与安全性。同时,阐述如何自定义上下文管理器以满足特定需求,并分析其性能考量及优化策略。最后总结实战经验,强调优先使用内置管理器、明确异常处理以及保持代码可读性的重要性,助力开发者高效编写健壮的程序。
293 1

推荐镜像

更多