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')
     
  • 相关阅读:
    UVa 11440 Help Tomisu (欧拉函数)
    理解最小路径覆盖(转)
    bzoj 3196: Tyvj 1730 二逼平衡树
    splay
    bzoj 3223: Tyvj 1729 文艺平衡树
    小奇的糖果(candy)
    线性函数
    bzoj 4408: [Fjoi 2016]神秘数
    bzoj 4446: [Scoi2015]小凸玩密室
    bzoj 4443: [Scoi2015]小凸玩矩阵
  • 原文地址:https://www.cnblogs.com/anan99/p/6912243.html
Copyright © 2011-2022 走看看