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')
     
  • 相关阅读:
    软件架构设计箴言理解
    解决vs2010没有NET Framework 2.0和3.5
    .NET连接数据库实例
    CSS选择器大全
    SilverLight全屏代码
    SilverLight数字时钟 > 我的博客有SilverLight了
    comboBox设置为只读(只选)
    WinForm 单例模式实例
    标识种子和标识增量
    jQuery固定DIV实现“返回顶部”
  • 原文地址:https://www.cnblogs.com/anan99/p/6912243.html
Copyright © 2011-2022 走看看