如何修改Python代码实现两文件行对应合并生成指定格式Bat文件?
问题描述
我编写了一段Python代码,用于读取两个文本文件的内容并合并写入Bat文件,代码如下:
data = data2 = ""; # 读取文件1的数据 with open('sample1.txt') as fp: data = fp.read() # 读取文件2的数据 with open('sample2.txt') as fp: data2 = fp.read() # 合并两个文件 # 将文件2的数据从下一行开始添加 with open ('sample3.bat', 'a') as fp: fp.writelines("KeyHunt-Cuda -m address --coin btc --range " + data + ":" + data2 + "13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so" '\n')
当前代码的输出结果为:
KeyHunt-Cuda -m address --coin btc --range aaaa bbbb cccc:ddd eee fff13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so
其中,sample1.txt的内容为:
aaaa bbbb cccc
sample2.txt的内容为:
ddd eee fff
我期望的输出格式为每行对应合并,如下所示:
KeyHunt-Cuda -m address --coin btc --range aaaa:ddd 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so KeyHunt-Cuda -m address --coin btc --range bbbb:eee 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so KeyHunt-Cuda -m address --coin btc --range cccc:fff 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so
请问应该如何修改这段代码以实现预期效果?
修改方案
核心问题是当前代码直接读取了整个文件的字符串内容,未按行拆分对应。需要将两个文件的内容按行分割,再逐行配对拼接。
修改后的代码如下:
# 读取文件1的行,去除每行末尾的换行符与空行 with open('sample1.txt') as fp: lines1 = [line.strip() for line in fp if line.strip()] # 读取文件2的行,去除每行末尾的换行符与空行 with open('sample2.txt') as fp: lines2 = [line.strip() for line in fp if line.strip()] # 逐行配对写入bat文件 with open('sample3.bat', 'w') as fp: # 用'w'覆盖写入,若需追加现有内容可保留'a' for line1, line2 in zip(lines1, lines2): cmd_line = f"KeyHunt-Cuda -m address --coin btc --range {line1}:{line2} 13zb1hQbWVsc2S7ZTZnP2G4undNNpdh5so\n" fp.write(cmd_line)
关键修改点:
- 用列表推导式读取每行内容,同时去除换行符和空行,避免多余格式干扰
- 使用
zip()函数将两个文件的行一一配对,确保每行对应合并 - 采用f-string格式化字符串,让拼接逻辑更清晰易读
- 写入时用
'w'模式覆盖文件(若需追加内容可改为'a')
内容的提问来源于stack exchange,提问作者Kim Foh Siow
相关产品推荐
相关产品推荐

