基于 Python 的文本文件指定内容的修改

背景:

不知不觉鼓捣单反已经近半年了,慢慢的更多的把 nef 文件的编辑侧重于 Adobe lightroom,前段时间在某个资源网站下载了一些预设文件,总以为通过Windows的批处理命令修改文件名就可以避免链接。但是导入 lightroom 之后发现还有一段链接,这谁顶得住昂,以文本的方式打开 *.lrtemplate 文件,才发现lightroom获取的是文本内属性值,所以导入软件后还是有链接广告(已打码)。如下图:

于是想着把这几百个文件的 internalName 属性和 title 属性都改一下。手改过于繁琐,于是想到了Python。

要求:

把 lightroom 文件(如LR风光预设01.lrtemplate)部分字符替换为自己需要的内容。

参考代码:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time    :2019/04/13 01:01
# @Author  :
# @File    :文本修改操作.py
# @Project :PyCharm
# @Description: ::

import os

# 工作文件夹,可以含有子文件夹
text = "D:\Downloads\BaiduNetdiskDownload\翼小君风光LR预设"
dirs = os.listdir(text)

for dir in dirs:
    directory = text + '\\' + dir

    # print(os.listdir(directory))

    files = os.listdir(directory)
    # 遍历文件夹内的所有文件
    for file in files:

        if ".lrtemplate" in file: # 文件类型的判读
            # print(file)
            file_name = file.replace(".lrtemplate", "")
            # print(file_name)

            old_text = directory + '\\' + file # 原来的文件
            new_text = directory + '\\LR' + file # 新的文件
            print(new_text)

            fp_old = open(old_text, 'r', encoding='utf-8')
            fp_new = open(new_text, 'a', encoding='utf-8')

            lines = fp_old.readlines() # 通过行加载文件内容
            count = len(lines) #文件的总行数
            print(count)

            for i in range(2):
                fp_new.write(lines[i])

            # 覆盖旧文件中的选中内容
            for i in range(2, 4):
                if i == 2:
                    internalName = 'internalName = "' + file_name + '",\n'
                    fp_new.write(internalName)
                if i == 3:
                    title = 'title = "' + file_name + '",\n'
                    fp_new.write(title)
                # print(lines[i])

            for i in range(4, count):
                fp_new.write(lines[i])

            fp_new.flush()
            fp_new.close()
            fp_old.close()

            # 删除源文件
            os.remove(old_text)

-------------------------------------------------------------------

备注:今天起开始摄影新分类呢???谁说我只会敲代码和鼓捣电子产品的?My gril - Dan.

你可能感兴趣的:(摄影,Python)