Python 批量修改 .nfo 文件内容:删除指定行并替换链接
可以使用 Python 中的 os 和 re 模块来实现对 .nfo 文件内容的修改。
首先,需要使用 os 模块遍历指定目录下的所有 .nfo 文件。然后,使用 re 模块找到第 9-11 行,并将其内容替换为新的内容。最后,使用文件读写操作将修改后的内容写回 .nfo 文件。
以下是代码示例:
import os
import re
# 定义要修改的行数范围
start_line = 9
end_line = 11
# 定义新的内容
new_cover = '[COVER]'
new_screen = '[SCREEN]'
new_cover_url = 'https://s10.imagetwist.com/th/56520/测试.jpg'
new_screen_url = 'https://imagetwist.com/nkoctef3mmgh/测试1.jpg'
# 定义要遍历的目录
dir_path = '/path/to/dir'
# 遍历目录下的所有 .nfo 文件
for filename in os.listdir(dir_path):
if filename.endswith('.nfo'):
# 打开文件并读取内容
with open(os.path.join(dir_path, filename), 'r', encoding='utf-8') as f:
content = f.readlines()
# 修改指定行的内容
for i in range(start_line-1, end_line):
line = content[i]
if 'COVER' in line:
content[i] = new_cover + '\n'
elif 'SCREEN' in line:
content[i] = new_screen + '\n'
else:
pass
# 将新的内容写回文件
with open(os.path.join(dir_path, filename), 'w', encoding='utf-8') as f:
f.writelines(content)
在代码中,使用 os.listdir() 函数遍历指定目录下的所有文件,使用 endswith() 函数筛选出以 .nfo 为后缀的文件。然后,使用 with open() 语句打开文件并读取内容。接着,使用 re 模块找到第 9-11 行,并将其内容替换为新的内容。最后,使用 with open() 语句将修改后的内容写回 .nfo 文件。
需要注意的是,由于文件中可能包含中文字符,因此在读取文件时需要指定编码格式,例如:
with open(os.path.join(dir_path, filename), 'r', encoding='utf-8') as f:
content = f.readlines()
同样,在写回文件时也需要指定编码格式:
with open(os.path.join(dir_path, filename), 'w', encoding='utf-8') as f:
f.writelines(content)
代码示例中删除了第 9 行和第 11 行,并替换了原第 10 行的链接,您可根据自己的需求修改代码中的变量,例如:
- start_line 和 end_line:指定要修改的行数范围
- new_cover 和 new_screen:指定新的 COVER 和 SCREEN 标签
- new_cover_url 和 new_screen_url:指定新的 COVER 和 SCREEN 链接
- dir_path:指定要遍历的目录
通过修改代码中的变量,您可以轻松地将此代码应用于不同的 .nfo 文件和不同的修改需求。
原文地址: https://www.cveoy.top/t/topic/owHw 著作权归作者所有。请勿转载和采集!