1.需求

程序1: 实现简单的shell sed替换功能

  file1 的内容copy到file2

  输入参数./sed.py  $1  $2

    $1替换成$2 (把a替换成% )

2.个人思路

open file 1 2

file1 内容 copy 到 file2

read 每一行 ,

        if a in line:   

            a替换%        

关闭file1 file2

  

代码

f1 = open('yes.txt','r+',encoding='utf-8')
f_new = open('yes2.txt','w',encoding='utf-8') for line in f1.readlines():
line = line.replace('a','%').strip()
print(line)
f_new.writelines(line) f1.close()
f_new.close()

  

 

3.个人心得

3.1 读取文件

  方法1:记得f1.close()  f_new.close()

f1 = open('yes.txt','r+',encoding='utf-8')
f_new = open('yes2.txt','w',encoding='utf-8')

  

  方法2:自动帮你关闭文件

with open('yes.txt','r+',encoding='utf-8') as f1:
with open('yes2.txt','w',encoding='utf-8') as f_new: for line in f1.readlines():

  

3.2  copy全部

方法1:f1 的内容copy到f_new

#全文复制
f1 = open('yes.txt','r+',encoding='utf-8')
f2 = open('yes2.txt','w',encoding='utf-8')
for line in f1.readlines(): 
  print(line.strip())
  f_new.writelines(line) #此时光标已经到末尾了

  

方法2:shutil模块(文本处理,压缩)

import shutil
shutil.copyfile("yes.txt","yes2.txt")

3.3 文件替换

读取  f1 的每行,a替换成%,并且写入到f_new  

f1 = open('yes.txt','r+',encoding='utf-8')
f2 = open('yes2.txt','w',encoding='utf-8') for line in f1.readlines():
line = line.replace('a','%').strip()
print(line)
f_new.writelines(line)

  

3.4 光标问题

注意:全文复制,(读取每一行,然后copy到 f2 ),此时光标已经到文件末尾!  执行替换时,已经读取不到内容

错误代码

# coding=utf-8

#打开文件
f1 = open('yes.txt','r+',encoding='utf-8')
f_new = open('yes2.txt','w',encoding='utf-8') #全文复制
for line in f1.readlines():
print(line.strip())
f_new.writelines(line) #光标已经到末尾了
a = f1.readlines() # a[] #替换
for line in f1.readlines():
line = line.replace("a",'%')
print(line.strip())
f_new.writelines(line)

3.5 sys模块 传入参数

传入参数 sys.argv[1]

import sys
#打开文件
with open('yes.txt','r+',encoding='utf-8') as f1:
with open('yes2.txt','w',encoding='utf-8') as f_new: find_str = sys.argv[1]
replace_str = sys.argv[2]

cmd 执行代码时,可以带参数 

D:\PycharmProjects\s14\作业>python "3-1 shell sed功能2.1.py" a %

  

4. 完整代码

# coding=utf-8

import sys
#打开文件
with open('yes.txt','r+',encoding='utf-8') as f1:
with open('yes2.txt','w',encoding='utf-8') as f_new: find_str = sys.argv[1]
replace_str = sys.argv[2] #替换
for line in f1.readlines():
line = line.replace(find_str,replace_str).strip()
print(line)
f_new.writelines(line) f1.close()
f_new.close()

  

3-1 实现简单的shell sed替换功能的更多相关文章

  1. Python3学习之路~2.8 文件操作实现简单的shell sed替换功能

    程序:实现简单的shell sed替换功能 #实现简单的shell sed替换功能,保存为file_sed.py #打开命令行输入python file_sed.py 我 Alex,回车后会把文件中的 ...

  2. 4.实现简单的shell sed替换功能

    # -*- coding:utf-8 -*- # Author: JACK ZHAO # 程序1: 实现简单的shell sed替换功能 import sys #判断参数个数 if len(sys.a ...

  3. Python3.5 day3作业一:实现简单的shell sed替换功能

    需求: 1.使python具有shell中sed替换功能. #!/usr/bin/env python #_*_conding:utf-8_*_ #sys模块用于传递参数,os模块用于与系统交互. i ...

  4. 实现简单的shell sed替换功能

    通过脚本传参数可以实现替换 # -*-coding:utf-8-*- # Author:sunhao import sys f = open('yesterday','r',encoding='utf ...

  5. python基础实现简单的shell sed 替换功能

    #coding:utf-8 from pygame.draw import lines import sys,os old_file = sys.argv[1] #接受外部设备上的参数 new_fil ...

  6. python 3.x 写 shell sed 替换功能

    shell sed 替换功能 f1 = open('yesterday','r',encoding='utf-8') f2 = open('yesterday2','w',encoding='utf- ...

  7. 实现简单sed替换功能的python脚本

    #可以用来修改配置文件参数 # -*- coding:utf-8 -*- import os,sys old = sys.argv[1] new = sys.argv[2] file = sys.ar ...

  8. sed替换 - 含反斜杠(/)和Shell变量

    sed替换 - 含反斜杠(/)和Shell变量 摘自: https://blog.csdn.net/zhenyongyuan123/article/details/6616263 2011年07月19 ...

  9. shell脚本学习(3)sed替换

    1 sed 替换   1格式: 's/原字符串/新字符串/'   输入源   2正确参考: sed ’s/as/AS/' do.txt 改变字符串as为AS,不会改输入源的文件. 匹配每行第一次匹配的 ...

随机推荐

  1. vim和xshell配色

    xshell配色: http://www.hookr.cn/xshell-pei-se.html vim配色: 参考该文中的配置方法,包括设置256色等.http://www.cnblogs.com/ ...

  2. Jmeter入门--Badboy使用教程(转)

    一.Badboy下载安装 感谢smxwn分享,转载地址:http://blog.csdn.net/wn_68/article/details/45872269 下载地址:http://www.badb ...

  3. mysql性能优化-慢查询分析、优化索引和配置 (慢查询日志,explain,profile)

    mysql性能优化-慢查询分析.优化索引和配置 (慢查询日志,explain,profile) 一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 ...

  4. Linux tar命令详解

    当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令) tar常见命令参数 必要参数有如下: -A 新增压缩文件到已存在的压缩 ...

  5. PHP解决网站大数据大流量与高并发

    1:硬件方面 普通的一个p4的服务器每天最多能支持10万左右的IP,如果访问量超过10W那么需要专用的服务器才能解决,如果硬件不给力软件怎么优化都是于事无补的.主要影响服务器的速度 有:网络-硬盘读写 ...

  6. Mac Item2 设置别名 永久生效

    使用 Item2 终端, 设置 别名的时候, 按照 网上的说法, 是 去 修改 用户目录下的   .bashrc   或者  .bash_profile 这两个文件都可以, 把 alias 写在 这两 ...

  7. Matlab面向对象编程基础

    DeepLab是一款基于Matlab面向对象编程的深度学习工具箱,所以了解Matlab面向对象编程的特点是必要的.笔者在做Matlab面向对象编程的时候发现无论是互联网上还是书店里卖的各式Matlab ...

  8. python第七课——循环结构 while

    while循环: 2.1.有四要素组成: ①.初始化条件(执行一次)一个起始数据/起点,一般使用变量来进行存储 ②.循环条件(可能执行多次)循环合适结束全靠它,执行结果为True,那么循环继续,反之, ...

  9. P3935 Calculating

    题目描述 若xx分解质因数结果为\(x=p_1^{k_1}p_2^{k_2}\cdots p_n^{k_n}\),令\(f(x)=(k_1+1)(k_2+1)\cdots (k_n+1)\),求\(\ ...

  10. P4906 小奔关闹钟

    题目背景 由于今天是星期一,闹钟准时响了,由于小奔太困了,所以她想关停闹钟. 题目描述 可是,他的闹钟电路太复杂了,有很多个开关,每个开关都连着其他开关,其他开关又连着更多的开关,当且仅当所有开关都关 ...