背景:
不知不觉鼓捣单反已经近半年了,慢慢的更多的把 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.