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

如何在Python中将多个命令行参数对应文本文件内容打印在同一行

问题原因
  • Python内置print()函数默认会在输出内容末尾追加换行符\n,你每读取一个文件就调用一次print(),自然每个文件的内容都会单独占一行
  • 代码中f.close()是冗余写法:with open() 上下文管理器会在代码块执行完成后自动关闭文件,不需要手动调用关闭方法
解决方案

方案1:先收集所有内容再统一打印(推荐,逻辑更清晰)

先把所有文件的内容读取后存入列表,再用空格拼接所有内容一次性打印,不会出现多余的换行或空格问题:

from sys import argv, exit

if len(argv) < 2:
    print("Missing command-line argument")
    exit(1)

content_list = []
for file_path in argv[1:]:
    with open(file_path, "r", encoding="utf-8") as f:
        # 若需要保留文件内部的换行仅删除末尾的换行,可替换为 f.read().rstrip('\n')
        content_list.append(f.read().strip())

print(' '.join(content_list))

方案2:遍历打印时修改end参数

如果不想额外占用内存存储所有文件内容,可以在调用print()时修改end参数,避免默认追加的换行符,最后再统一输出换行:

from sys import argv, exit

if len(argv) < 2:
    print("Missing command-line argument")
    exit(1)

file_count = len(argv[1:])
for idx, file_path in enumerate(argv[1:]):
    with open(file_path, "r", encoding="utf-8") as f:
        content = f.read().strip()
    # 最后一个文件内容末尾输出换行,其余文件内容末尾输出空格分隔
    print(content, end='\n' if idx == file_count - 1 else ' ')

内容的提问来源于stack exchange,提问作者Skarbietae

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:39:00