利用Python替换文件中的字符串

Python对文件中字符串的替换操作没有利用sed那么方便。自己动手写一个,改造一下可以作为工具包给其他文件使用。

直接贴上代码,基于Python 2.7.11。

#!/bin/env python
# -*- coding:utf-8 -*-

import sys

def replace(file_path, old_str, new_str):
  try:
    f = open(file_path,'r+')
    all_lines = f.readlines()
    f.seek(0)
    f.truncate()
    for line in all_lines:
      line = line.replace(old_str, new_str)
      f.write(line)
    f.close()
  except Exception,e:
    print e

if __name__ == "__main__":
  if len(sys.argv) < 4:
    print "need 3 params"
    sys.exit(1)
  file_name = sys.argv[1]
  src_str = sys.argv[2]
  dst_str = sys.argv[3]
  replace(file_name, src_str, dst_str)

欢迎大家加以改造利用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python字符串的全局替换可以使用replace()方法。该方法会将字符串的所有匹配项替换为指定的新值。 举个例子,假设有一个字符串a = 'aabbabbbaabbaaa',我们可以使用replace()方法将其所有的'a'替换为'c',代码如下: ```python a = 'aabbabbbaabbaaa' a = a.replace('a', 'c') print('a:', a) ``` 输出结果为:'ccbbcbbbccbbccc'。这是因为replace()方法默认会将字符串所有的匹配项都替换为新值。 如果你需要自定义一个函数来实现字符串的全局替换,可以参考下面的代码: ```python def replace_all(file_name, be_replaced, new): with open(file_name, 'r') as f: text = f.read() replaced_text = text.replace(be_replaced, new) with open('new_file_name.txt', 'w') as f: f.write(replaced_text) ``` 其,file_name参数是传入的文件名,be_replaced参数是要替换字符串,new参数是替换后的新字符串。该函数会将原文件所有被替换字符串全部变为替换后的新字符串,并保存到一个新的文件。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [replace:Python 字符串replace方法默认是全局替换,而在js是默认只替换一个](https://blog.csdn.net/shunzi2016/article/details/115283046)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [利用Python实现“全部替换”功能](https://blog.csdn.net/qq_50637636/article/details/128935897)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值