zoukankan      html  css  js  c++  java
  • python3-file的修改实现类似shell中sed的功能

    # Auther: Aaron Fan

    '''
    思路:
    目的是为了修改yesterday这个文件,但是因为无法直接去修改这个文件,所以需要先把修改好的内容写入高yesterday.new这个文件中,
    然后再把yesterday.new的内容覆盖到yesterday这个文件中


    f = open('yesterday','r',encoding='utf-8')
    f_new = open('yesterday.new','w',encoding='utf-8')

    for line in f:
    if "肆意的快乐等我享受" in line:
    line = line.replace("肆意的快乐等我享受","肆意的快乐等着Aaron去享受")
    f_new.write(line)
    f.close()
    f_new.close()

    #改进版(实现类似sed的功能):
    import sys
    f = open('yesterday','r',encoding='utf-8')
    f_new = open('yesterday.new','w',encoding='utf-8')

    #命令行参数,需要被改的字符串
    find_str = sys.argv[1]
    #命令行参数,需要被改成哪个字符串
    replace_str = sys.argv[2]
    for line in f:
    if find_str in line:
    line = line.replace(find_str,replace_str)
    f_new.write(line)
    f.close()
    f_new.close()
    #需要在命令行下去测试(源文件yesterday需要存在的),使用以下命令:
    #python file文件的修改_实现类似sed的功能.py "肆意的快乐等我享受" "肆意的快乐等着Aaron去享受"
    '''

    #使用with语句的改进版(with的作用就是,当with语句执行完后会自动帮你关闭文件,所以文件操作请用with):
    import sys
    with open('yesterday','r',encoding='utf-8') as f,
    open('yesterday.new','w',encoding='utf-8') as f_new:

    #命令行参数,需要被改的字符串
    find_str = sys.argv[1]
    #命令行参数,需要被改成哪个字符串
    replace_str = sys.argv[2]
    for line in f:
    if find_str in line:
    line = line.replace(find_str,replace_str)
    f_new.write(line)
    #需要在命令行下去测试(源文件yesterday需要存在的),使用以下命令:
    #python file文件的修改_实现类似sed的功能.py "肆意的快乐等我享受" "肆意的快乐等着Aaron去享受"
  • 相关阅读:
    Python网络爬虫第三弹《爬取get请求的页面数据》
    18.增量式爬虫
    17.基于scrapy-redis两种形式的分布式爬虫
    关于进程内存磁盘的一些命令
    linux其他命令
    ls -用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)
    mkdir和touch
    ls -列出当前目录下所有的文件或者目录
    cat -用于连接文件并打印到标准输出设备上
    rm -移动文件
  • 原文地址:https://www.cnblogs.com/AaronFan/p/6057261.html
Copyright © 2011-2022 走看看