本文部分代码引用文章:python 根据行号修改文件中指定的行_海纳百川的博客-CSDN博客
正文开始先上代码:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-f",'--filename',help="请输入文件名称")
parser.add_argument("-n",'--number',help="请输入要修改的行号",type=int)
parser.add_argument("-c",'--content',help="请输入要修改的内容")
args =parser.parse_args()
str=args.filename
num=args.number
cd=args.content
################################################################################
def Del_line(file_path, line_num, Contents): # file_path:文件名;line_num:行号;Contents:修改后的内容
with open(file_path, "r") as f:
res = f.readlines() # res 为列表
res[line_num - 1] = (Contents + "\n") # 删除行,因为索引是从 0 开始的,所以需要 -1
with open(file_path, "w") as f:
f.write("".join(res)) # 将 res 转换为 字符串重写写入到文本
return
Del_line(str, num,cd)
本实验的目录结果如下:在test文件夹下有两个文件,a.py存放代码,test.txt是要修改的文件
test.txt初始内容如下
在命令行解析中:通过-n,-s ,-c传入内容
-f 后面跟需要修改的文件名
-n后面跟要修改的行号
-c后面跟要修改的内容
在pycharm终端里面执行如下命令,然后回车
命令说明:
python .\a.py -f test.txt -n 2 -c 'I have learned it'
a.py里面存放python代码,
-f test.txt----------要文件名称
-n 2-----------------修改第二行
-c 'I have learned it'-----------修改的内容
就是将test.txt文件的第二行修改为 I have learned it
实验结果:在次打开test.tst发现文件的第二行已经被修改为:I have learned it