python读取文件替换字符串_python 小程序,替换文件中的字符串

这篇博客展示了如何使用Python脚本实现批量替换文件中的字符串。通过示例代码解释了参数检查、文件操作和字符串替换的过程,并提到了在Linux环境中使用sed命令进行类似操作的16个例子。
摘要由CSDN通过智能技术生成

[root@PythonPC ~]# cat passwd

root:x:::root:/root:/bin/bash

bin:x:::bin:/bin:/sbin/nologin

daemon:x:::daemon:/sbin:/sbin/nologin

adm:x:::adm:/var/adm:/sbin/nologin

::lp:/var/spool/lpd:/sbin/nologin

::sync:/sbin:/bin/sync

shutdown:x:::shutdown:/sbin:/sbin/shutdown

halt:x:::halt:/sbin:/sbin/halt

[root@PythonPC ~]#

[root@PythonPC ~]# python .py

[root@PythonPC ~]#

[root@PythonPC ~]# cat passwd

root:x:::root:/root:/bin/bash

bin:x:::bin:/bin:/sbin/nologin

daemon:x:::daemon:/sbin:/sbin/nologin

adm:x:::adm:/var/adm:/sbin/nologin

::lp:/var/spool/lpd:/sbin/nologin

::sync:/sbin:/bin/sync

shutdown:x:::shutdown:/sbin:/sbin/shutdown

halt:x:::halt:/sbin:/sbin/halt

[root@PythonPC ~]#

[root@PythonPC ~]# python .py passwd.new

[root@PythonPC ~]#

[root@PythonPC ~]# cat passwd

root:x:::root:/root:/bin/bash

bin:x:::bin:/bin:/sbin/nologin

daemon:x:::daemon:/sbin:/sbin/nologin

adm:x:::adm:/var/adm:/sbin/nologin

::lp:/var/spool/lpd:/sbin/nologin

::sync:/sbin:/bin/sync

shutdown:x:::shutdown:/sbin:/sbin/shutdown

halt:x:::halt:/sbin:/sbin/halt

[root@PythonPC ~]#

[root@PythonPC ~]# cat passwd.new

root:x:::root:/root:/bin/bash

bin:x:::bin:/bin:/sbin/nologin

daemon:x:::daemon:/sbin:/sbin/nologin

adm:x:::adm:/var/adm:/sbin/nologin

::lp:/var/spool/lpd:/sbin/nologin

::sync:/sbin:/bin/sync

shutdown:x:::shutdown:/sbin:/sbin/shutdown

halt:x:::halt:/sbin:/sbin/halt

[root@PythonPC ~]#

[root@PythonPC ~]# python .py passwd o

参数错误:python .py 需要编辑的文件 被替换的字符串 提成成的字符串 [另存成的文件]

[root@PythonPC ~]# python .py passw

文件不存在

[root@PythonPC ~]#

脚本代码如下:

#!/usr/bin/python

# -*- coding=UTF-8 -*-

import sys

import os

len_argv=len(sys.argv)

#print '传参数量',len_argv-1

if len_argv < 4:

print '参数错误:python '+sys.argv[0]+' 需要编辑的文件 被替换的字符串 提成成的字符串 [另存成的文件]'

elif len_argv > 5:

print '参数错误:python '+sys.argv[0]+' 需要编辑的文件 被替换的字符串 提成成的字符串 [另存成的文件]'

else:

if not os.path.isfile(sys.argv[1]):

print '文件不存在'

sys.exit()

s_file = file(sys.argv[1],'r+')

old_str = sys.argv[2]

new_str = sys.argv[3]

d_file = file(sys.argv[1]+'.tmp','w')

for line in s_file.readlines():

d_file.writelines(line.replace(old_str,new_str))

s_file.close()

d_file.close()

if len_argv == 4:

os.rename(sys.argv[1]+'.tmp',sys.argv[1])

else:

os.rename(sys.argv[1]+'.tmp',sys.argv[4])

使用 sed 命令查找和替换文件中的字符串的 16 个示例

当你在使用文本文件时,很可能需要查找和替换文件中的字符串.sed 命令主要用于替换一个文件中的文本.在 Linux 中这可以通过使用 sed 命令和 awk 命令来完成. 在本教程中,我们将告诉你使用 ...

linux sed 批量替换文件中的字符串或符号

sed -i :直接修改读取的文件内容,而不是输出到终端.   sed -i 就是直接对文本文件进行操作的   替换每行第一次出现的字符串 sed -i 's/查找的字符串/替换的字符串/' 文件   ...

软件工程-构建之法 WordCount小程序 统计文件中字符串个数,单词个数,词频,行数

一.前言 在之前写过一个词频统计的C语言课设,别人说你一个大三的怎么写C语言课程,我只想说我是先学习VB,VB是我编程语言的开始,然后接触到C语言及C++:再后来我是学习C++,然后反过来学习C语言, ...

微信小程序wxml文件中调用自定义函数

想在微信小程序的wxml文件里自如的像vue那样调用自定义的方法,发现并不成功,得利用WXS脚本语言. WXS脚本语言是 WeiXin Script 脚本语言的简称,是JavaScript.JSON. ...

微信小程序 wxml 文件中如何让多余文本省略号显示?

废话不多说,之前写小程序碰到了一个问题,如何在 wxml 页面中截取数据? 1.wxs   取数据想必大家都会,不就是 substring 吗?但是这种方法在 wxml 页面中是无效的. 那还有 cs ...

shell 脚本替换文件中某个字符串

1.将当前目录下包含jack串的文件中,jack字符串替换为tom sed -i "s/jack/tom/g" `grep "jack" -rl ./` 2.将 ...

grep和sed替换文件中的字符串

sed -i s/"str1"/"str2"/g `grep "str1" -rl --include="*.[ch]" ...

grep和sed替换文件中的字符串【转】

sed -i s/"str1"/"str2"/g `grep "str1" -rl --include="*.[ch]" ...

shell 脚本sed替换文件中某个字符串

有些大文件,特别的大.有几百兆,甚至更大. 用文本编辑器打开十分的费劲,电脑都卡死了. 想替换其中的字符串,很麻烦. 这个时候有了shell,简直强大到爆炸! # du -h user.sql 304 ...

Bat 替换文件中的字符串

echo off setlocal enabledelayedexpansion set "file=Config\__Config\server_config_common.xml&quo ...

随机推荐

weborm 简单控件

Label - 显示文字,编译后是spanLiteral - 显示文字,编译后没有形成元素 只是文字 一般用来输出 js代码内容 TextBox - 文本框 TextMode -普通文本框 singl ...

IOS中bounds和frame

* 用bounds和frame来修改尺寸是有一些小区别的 三.isEqual:方法 1> 系统会根据对象isEqual方法的返回值来决定两个对象是否相同 * 比如判断对象a和b是否相同,就会查看 ...

最佳化常用测试函数 Optimization Test functions

http://www.sfu.ca/~ssurjano/optimization.html The functions listed below are some of the common func ...

让 kibana 后台启动的方案

为了解决启动kibana后关闭shell终端kibana自动关闭的问题,记录2种解决方案,试验后均可行. 假设kibana安装的目录为 /usr/local/kibana/ 方案一: 使用nohup ...

confirm显示数组中的内容时,总是带一个逗号分隔的解决方法

问题的关键 就是在给confirm显示之前,将数组转换成字符串,并以每个数组的元素为一个字符串,加上一个换行回车符即可: 代码中的背景色 为关键的点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值