zoukankan      html  css  js  c++  java
  • python中用argv函数修改文件里的内容

     代码如下:
    import sys,os
    f = open(sys.argv[1],'a+')#f代表的是这个文件的对象,也叫句柄 注意sys.argv[1]这里一定不要加上引号,否则被认定为字符串
    fw = open('a1.txt.new','w')#fw代表的是这个文件的对象,也叫句柄
    f.write(sys.argv[2]+' ') #注意sys.argv[2]这里一定不要加上引号,否则被认定为字符串
    f.write(sys.argv[2]+' ') #注意sys.argv[2]这里一定不要加上引号,否则被认定为字符串
    f.seek(0) # 把文件指针移动到最前面 一定要加上这句话哦 因为如果打开一个文件 最开始的时候指针是指到末尾的
    # line = f.read() #这句和for line in f是一个意思
    for line in f:# 读出来了一次 然后又作为迭代参数 循环文件。 前面一次赋值没有意义
    new_res = line.replace(sys.argv[2],sys.argv[3]) #B是被修改的字符串,DD是修改后的字符串 #注意sys.argv[2]和sys.argv[3]这里一定不要加上引号,否则被认定为字符串
    fw.write(new_res)
    f.close()
    fw.close()
    os.remove(sys.argv[1]) #注意sys.argv[1]这里一定不要加上引号,否则被认定为字符串
    os.rename('a1.txt.new',sys.argv[1])#注意sys.argv[1]这里一定不要加上引号,否则被认定为字符串
     
     
     
    #分析 在命令行执行以下 python 222.py a.txt BB DD
    # sys.argv[0] #指的是2222.py
    # sys.argv[1] #指的是a.txt
    # sys.argv[2] #指的是 BB
    # sys.argv[3] #指的是 DD




    附不用argv的代码做一下对比:
    import os
    f = open(argv[1], 'r')
    f = open('a1.txt','a+')#f代表的是这个文件的对象,也叫句柄
    fw = open('a1.txt.new','w')#fw代表的是这个文件的对象,也叫句柄
    f.write('BBBBBBBBB'+' ')
    f.write('AAAAABBBBB'+' ')
    f.seek(0) # 把文件指针移动到最前面 一定要加上这句话哦 因为如果打开一个文件默认指针是指到末尾的
    # line = f.read() #这句和for line in f是一个意思
    for line in f:# 读出来了一次 然后又作为迭代参数 循环文件。 前面一次赋值没有意义
    new_res = line.replace('B','DD')#B是被修改的字符串,DD是修改后的字符串
    fw.write(new_res)
    f.close()
    fw.close()
    os.remove('a1.txt')
    os.rename('a1.txt.new','a1.txt')
     
  • 相关阅读:
    (转)Docker network命令
    (转)Navicat连接MySQL8.0亲测有效
    (转)Docker 网络
    Docker问题方案收集
    (转)docker run的--rm选项详解
    (转)docker-compose安装
    (转)教你分分钟搞定Docker私有仓库Registry
    (转)Docker入门——Dockerfile详解
    (转)Windows下安装Docker, GitBash环境配置
    (转)教你分分钟搞定Docker私有仓库Registry
  • 原文地址:https://www.cnblogs.com/anan99/p/6912243.html
Copyright © 2011-2022 走看看