You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 02:55:30