一、内容

二、练习

练习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基础第六天的更多相关文章

  1. Python基础班学习笔记

    本博客采用思维导图式笔记,所有思维导图均为本人亲手所画.因为本人也是初次学习Python语言所以有些知识点可能不太全. 基础班第一天学习笔记:链接 基础班第二天学习笔记:链接 基础班第三天学习笔记:链 ...

  2. python之最强王者(2)——python基础语法

    背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...

  3. Python开发【第二篇】:Python基础知识

    Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...

  4. Python小白的发展之路之Python基础(一)

    Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...

  5. Python之路3【第一篇】Python基础

    本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...

  6. 进击的Python【第三章】:Python基础(三)

    Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...

  7. 进击的Python【第二章】:Python基础(二)

    Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...

  8. Python之路【第一篇】python基础

    一.python开发 1.开发: 1)高级语言:python .Java .PHP. C#  Go ruby  c++  ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...

  9. python基础之day1

    Python 简介 Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python为我们提供了非常完善的基础代码库,覆盖了 ...

随机推荐

  1. python字符串,常用编码

    Python的字符串和编码 1.常用编码 与python有关的编码主要有:ASCII.Unicode.UTF-8 其中ASCII如今可以视作UTF-8的子集 内存中统一使用Unicode编码(如记事本 ...

  2. 56.fielddata filter的细粒度内存加载控制

    语法: POST /test_index/_mapping/test_type { "properties": { "test_field": { " ...

  3. 基于flask的网页聊天室(一)

    基于flask的网页聊天室(一) 基本目标 基于flask实现的web聊天室,具有基本的登录注册,多人发送消息,接受消息 扩展目标 除基本目标外添加当前在线人数,消息回复,markdown支持,历史消 ...

  4. python视频 神经网络 Tensorflow

    python视频 神经网络 Tensorflow 模块 视频教程 (带源码) 所属网站分类: 资源下载 > python视频教程 作者:smile 链接:http://www.pythonhei ...

  5. Python中关于使用正则表达式相关的部分笔记

    一点点自己记的笔记,如果各位朋友看不懂,可以在评论区留言,会尽可能快的回复. 所有的知识点全部贴在代码上了,注释也写了. 建议大伙把代码拷到自己的机器上,运行,查看结果,然后,结合注释,再自己稍稍理解 ...

  6. 节点回来shard仍然delayed原因

    1:es2 fetch shard data时,存在节点刚加入集群,还没有收到cluster metadata的情况.此时,节点因为没有该索引,返回的sharddata为empty,主节点缓存了该sh ...

  7. 开启POP3/SMTP服务

    实现发送邮件时需要先启用POP3/SMTP服务(以qq邮箱和网易邮箱启用为例) 一 qq邮箱启用 二.网易邮箱开启POP3/SMTP服务 至此:服务已开启

  8. CentOS 7 & Chinese Fonts bug

    CentOS 7 & Chinese Fonts bug # check $ yum grouplist $ yum grouplist hidden # root $ yum groupin ...

  9. Linux下汇编语言学习笔记37 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  10. SpringBoot学习day01

    SpringBoot目的在于创建和启动新的基于Spring框架的项目.SpringBoot会选择最合适的Spring子项目和第三方开源库进行整合.大部分SpringBoot应用只需要非常少量的配置就可 ...