修改文件的简单脚本

有的时候需要有规律的修改一个文件,这个脚本还是很有用的。

import os
from tempfile import mkstemp
from shutil import move
from os import remove


def replace(source_file_path, change):
    fh, target_file_path = mkstemp()
    with open(target_file_path, 'w', encoding='utf-8') as target_file:
        with open(source_file_path, 'r', encoding='utf-8') as source_file:
            for line in source_file:
                target_file.write(change(line))
    remove(source_file_path)
    move(target_file_path, source_file_path)


def change_package(line):
    key = 'package com.google.zxing.client'
    if line.startswith(key) and line != (key + ';'):
        subFix = line[len(key):]
        if (not subFix.startswith(';')) and (not subFix.startswith('.')):
            dd = key + '.' + subFix
            print(dd)
            line = dd
    return line


def travel_folder(folder_name, change):
    for x in os.walk(folder_name):
        path = x[0]
        for item in x[2]:
            replace(str(path) + "/" + str(item), change)


def change_keys(line):
    items = line.split(',')
    new_items = []
    new_items.append(items[1])
    new_items.append(items[2])
    new_items.append(items[2])
    new_items.append(items[3])
    return ','.join(new_items) + "\n"


if __name__ == '__main__':
    path = '/Users/taoli/Downloads/ep_wallet_priv.csv'
    replace(path, change_keys)
    # path = 'your folder'
    # travel_folder(path, change_package)

  • 遍历文件夹使用travel_folder方法,处理单个文件使用replace方法
  • 需要传入一个处理一行的方法,比如这里的change_keyschange_package
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,969评论 19 139
  • 身边好多人都知道我今年考上了研究生,这主要归功于我不要脸的大肆宣传,出去跟人讲话都会有意无意的提起:“我考研了哦~...
    naoki4ever阅读 4,726评论 0 1
  • 作为管理者做任何事情都要有规矩,能干什么不能干什么一定要分的清楚,每个公司都有自己的规则无规矩不成方圆,一定要守...
    临淄茂业DDM王春梅阅读 115评论 0 0
  • 日暮秋风吹落叶, 寒蝉歇,鸟声绝。 极目天边,云披彩霞,掠过群雁。 夕阳如血,冷意忽觉,复将一夜。
    ifee阅读 162评论 0 0
  • 《论语》这样说:“‘以德报怨,何如?’子曰:'何以报德?以直报怨,以德报德。’” 白纸黑字地说明孔子他老人家是不赞...
    林蔚安阅读 1,206评论 0 1