【问题标题】:Print function and normal string in python [duplicate]python中的打印函数和普通字符串[重复]
【发布时间】:2020-02-24 10:14:24
【问题描述】:

我正在使用从file.txt 存储的文本,它用于一些分析。从该文件中读取文本后,我看到打印的变量值和存储在该变量中的实际值存在差异

file=open("message.txt", "r")
message=file.read()
print(message)

打印输出:'MSH|^~\\&|GHH LAB|ELAB-3|GHH OE|BLDG4|200202150930||ORU^R01|CNTRL-3456|P|2.4'

以上结果包含我的消息的打印值。现在我将打印值与message中的实际值进行比较

if message == 'MSH|^~\\&|GHH LAB|ELAB-3|GHH OE|BLDG4|200202150930||ORU^R01|CNTRL-3456|P|2.4':
        print("match found")
else:
        print("No match found")

输出:未找到匹配项

我再次尝试使用 str() 和 repr() 方法,它没有返回正确的结果

【问题讨论】:

  • 试试file.read().rstrip()
  • 看来您的实际消息包含引号作为字符串的一部分...!?
  • 打印消息的repr,并将其复制并粘贴为要测试的字符串文字。
  • @deceze 是的,作为输入引号的一部分将出现
  • 因此,与其猜测您需要形成什么字符串,不如将print(repr(message)) 复制并粘贴到if message == <paste here> 中。

标签: python string repr


【解决方案1】:

您需要使用\\\\ 转义代码中字符串文字中的反斜杠字符。 你也应该像提到的那样剥离()文件的内容。

以下对我有用:

file = open("message.txt", "r")
message = file.read().strip()
print(message)
if message == 'MSH|^~\\\\&|GHH LAB|ELAB-3|GHH OE|BLDG4|200202150930||ORU^R01|CNTRL-3456|P|2.4':
        print("match found")
else:
        print("No match found")

【讨论】:

  • 感谢您的回答。能否详细解释一下
  • 但是在您的打印值中有四个反斜杠,但在我的输入中只有两个反斜杠
  • 代码中需要四个反斜杠,以便 Python 正确解释字符串,但文件中只有两个反斜杠。见stackoverflow.com/a/19095831/1619769
  • 任何其他避免反斜杠的方法
猜你喜欢
  • 2021-04-19
  • 1970-01-01
  • 2021-07-11
  • 2021-11-02
  • 1970-01-01
  • 2011-08-12
  • 1970-01-01
  • 2018-05-09
  • 1970-01-01
相关资源
最近更新 更多