Python基础第六天
一、内容
二、练习
练习1
题目:文件的增删改查
图示:
代码:
import os def add(data):
content = data[1] # 文件内容
file_name = data[-1]# 文件名
with open(file_name,'r',encoding='utf-8') as f_read:
lines = f_read.readlines()
with open('b.txt','a',encoding='utf-8') as f_write:
for line in lines:
f_write.write(line)
f_write.write(content)
os.remove(file_name)
os.rename('b.txt',file_name)
with open('b.txt','w',encoding='utf-8') as f:
pass def delete(data):
content = data[1] # 文件内容
file_name = data[-1] # 文件名
with open(file_name,'r',encoding='utf-8') as f_read:
lines = f_read.readlines()
with open('b.txt','w',encoding='utf-8') as f_write:
for line in lines:
if content in line:
continue
f_write.write(line)
os.remove(file_name)
os.rename('b.txt',file_name)
with open('b.txt','w',encoding='utf-8') as f:
pass def change(data):
content = data[1]
file_name = data[-1]
with open(file_name,'r',encoding='utf-8') as f_read:
lines = f_read.readlines()
with open('b.txt','w',encoding='utf-8') as f_write:
user_change_content = input('Please enter new content:').strip()
for line in lines:
if content in line:
f_write.write(user_change_content)
f_write.write('\n')
continue
f_write.write(line)
os.remove(file_name)
os.rename('b.txt', file_name)
with open('b.txt','w',encoding='utf-8') as f:
pass def search(data):
content = data[1] # 文件内容
file_name = data[-1]# 文件名
with open(file_name,'r',encoding='utf-8') as f:
for i,line in enumerate(f,1):
if content in line:
print(i,line) user_dic = {
'add':add,
'delete':delete,
'change':change,
'search':search
} while True:
user = input('Please enter the command:').strip()
user_l = user.split() # 将用户输入的命令进行切片,以空格为分隔符,得到一个列表
if len(user_l) != 3: # 当这个列表的参数小于3个提示用户缺少参数
print('Missing parameters or Content not found!')
continue
if not user or not user_l[0] in user_dic: # 当用户输入为空或列表的第一个参数不在字典user_dic里时提示用户无效的输入
print('Invalid input!')
continue if user_l[0] in user_dic: # 当列表中的第一个元素在user_dic中时
if os.path.exists(user_l[-1]):# 当列表中的最后一个元素(即用户输入的文件名)存在时
user_dic[user_l[0]](user_l) # 调用相对应的函数功能,将列表当作实参进行传递
else:
print('The file you want to operate does not exist,please try again.')
输出结果:
a.txt原文件:
1、增加
例:往a.txt文件后面增加字符串"xxxxxxxxxxxxxxxxxx"
输入:add xxxxxxxxxxxxxxxxxx a.txt
输出结果:
2、删除
例:删除指定字符串的所在的行,如带有"knight"关键字的所在的行
输入:delete knight a.txt
输出结果:
3、更改
例:更改指定字符串所在的行,如将带有"knight"关键字所在的行更改为"xxxxxxxxxxxxxxxxxx"
输入:change knight a.txt,后再输入要更改的内容:xxxxxxxxxxxxxxxxxx
输出结果:
4、查找
例:查找包含有“knight”关键字的行并显示出行号来
输入:search knight a.txt
输出结果:
三、英语
1、file
[faɪl] n.文件
2、Directory
[dəˈrɛktəri; (also) daɪˈrɛktəri] n.目录
3、command
[kə'mænd] n.命令
4、import
['ɪmpɔt] vt.导入
Python基础第六天的更多相关文章
- Python基础班学习笔记
本博客采用思维导图式笔记,所有思维导图均为本人亲手所画.因为本人也是初次学习Python语言所以有些知识点可能不太全. 基础班第一天学习笔记:链接 基础班第二天学习笔记:链接 基础班第三天学习笔记:链 ...
- python之最强王者(2)——python基础语法
背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
- Python小白的发展之路之Python基础(一)
Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...
- Python之路3【第一篇】Python基础
本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...
- 进击的Python【第三章】:Python基础(三)
Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...
- 进击的Python【第二章】:Python基础(二)
Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...
- Python之路【第一篇】python基础
一.python开发 1.开发: 1)高级语言:python .Java .PHP. C# Go ruby c++ ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...
- python基础之day1
Python 简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python为我们提供了非常完善的基础代码库,覆盖了 ...
随机推荐
- 《深入浅出深度学习:原理剖析与python实践》第八章前馈神经网络(笔记)
8.1 生物神经元(BN)结构 1.人脑中有100亿-1000亿个神经元,每个神经元大约会和其他1万个神经元相连 2.细胞体:神经元的主体,细胞体=细胞核+细胞质+细胞膜,存在膜电位 3.树突:从细胞 ...
- (八)python3 迭代
迭代:如果给定一个 list 或 tuple,我们可以通过 for 循环来遍历这个 list 或tuple,这种遍历我们称为迭代(Iteration) 字典: >>> d = {'a ...
- Git 与其他系统 - Git 与 Subversion
https://git-scm.com/book/zh/v1/Git-%E4%B8%8E%E5%85%B6%E4%BB%96%E7%B3%BB%E7%BB%9F-Git-%E4%B8%8E-Subve ...
- Leetcode 214.最短回文串
最短回文串 给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串.找到并返回可以用这种方式转换的最短回文串. 示例 1: 输入: "aacecaaa" 输出: &qu ...
- [Zabbix] 如何实现邮件报警通知以及免费短信报警通知
版权声明:本文为博主原创文章,未经博主允许不得转载. 前提条件: (1) zabbix服务器端已经成功安装并且运行. (2) zabbix客户端已经成功建立并且运行. 1 下载并且安装msmtp软件 ...
- noip模拟赛 入阵曲
分析:其实很容易想到O(n^3m^3)的算法,枚举x1,x2,y1,y2,再统计一下和.求和可以用前缀和,能优化到O(n^2m^2),能得到60分.对于特殊性质的点,求一下a[i][j]与k的最小公倍 ...
- [NOIP2004] 提高组 洛谷P1092 虫食算
题目描述 所谓虫食算,就是原先的算式中有一部分被虫子啃掉了,需要我们根据剩下的数字来判定被啃掉的字母.来看一个简单的例子: 43#9865#045 +8468#6633 44445509678 其中# ...
- VIM使用技巧14
经常使用vim的童鞋可能会注意到,实际操作过程中,处于插入模式中是非常少的,更多的是查看和浏览,偶尔修改即可.因此,快速从插入模式退出进入普通模式,就显得非常重要.主要有以下四种方式: 一.在插入模式 ...
- 基于端口的信息探测-portscan-1.0
http://www.tiaozhanziwo.com/archives/174.html
- [bzoj2287][poj Challenge]消失之物_背包dp_容斥原理
消失之物 bzoj-2287 Poj Challenge 题目大意:给定$n$个物品,第$i$个物品的权值为$W_i$.记$Count(x,i)$为第$i$个物品不允许使用的情况下拿到重量为$x$的方 ...