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

如何为字符转换Python代码实现多行字符串输入功能?

实现多行字符串输入的两种方案

方法1:利用EOF结束输入(原生方式)

原代码里的sys.stdin.read()本身就支持多行输入,只是需要明确告知用户结束输入的操作:

  • Windows系统:输入完多行内容后,按Ctrl + Z再回车
  • Linux/macOS系统:输入完多行内容后,按Ctrl + D

修正后的代码(移除冗余操作并补充提示):

import sys

# 请在此处定义你的字符转换字典
translation = {"a": "α", "b": "β", "c": "γ"}  # 示例转换表

print("Enter PC2 text to convert to InPage (输入完成后按 Ctrl+Z+回车(Windows) 或 Ctrl+D(Linux/macOS) 结束):")
text = sys.stdin.read()

translated_table = text.maketrans(translation)
finaltext = text.translate(translated_table)

print("Provide a name of the file:")
fileofname = input().strip()
name = f"{fileofname}.txt"

with open(name, 'w', encoding='utf-8') as f:
    f.write(finaltext)
print(f"转换完成,结果已写入 {name}")

方法2:自定义结束标记(更友好)

如果觉得EOF快捷键不够直观,可以设置自定义结束标记(比如单独一行输入END)来终止输入,代码如下:

# 请在此处定义你的字符转换字典
translation = {"a": "α", "b": "β", "c": "γ"}  # 示例转换表

print("Enter PC2 text to convert to InPage (输入完成后单独一行输入 END 结束):")
lines = []
while True:
    line = input()
    if line.strip().upper() == "END":
        break
    lines.append(line)
text = "\n".join(lines)

translated_table = text.maketrans(translation)
finaltext = text.translate(translated_table)

print("Provide a name of the file:")
fileofname = input().strip()
name = f"{fileofname}.txt"

with open(name, 'w', encoding='utf-8') as f:
    f.write(finaltext)
print(f"转换完成,结果已写入 {name}")

关键说明

  • 必须确保translation字典已正确定义,键为原字符,值为目标转换字符
  • 写入文件时指定encoding='utf-8',避免Unicode字符出现乱码
  • 移除了原代码中冗余的sys.stdout = f,该操作会修改标准输出,无实际必要
  • 方法2的结束条件可灵活调整,比如改成输入空行结束(判断if not line.strip())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 01:39:54