【问题标题】:Unable to concatenate strings in Python2.7在 Python2.7 中无法连接字符串
【发布时间】:2019-03-22 14:39:05
【问题描述】:

我试图在我的函数中连接两个字符串。我尝试了所有的连接,但是这两个字符串并没有一个接一个地连接,而是用较短的字符串 B(length = s) 替换了较长字符串 A 的前 s 个单位。

我从输入文件中读取了一些数据,并将内容为“00001M035NNYY1111111”的第三行存储到一个名为申请人的变量中:

data = open("input.txt").read().split('\n')

applicant = str(data[2])

我想在applicant 的末尾添加一个整数 8,所以新的applicant 将是“00001M035NNYY11111118”。我尝试了applicant += str(8)"".join((applicant, str(8))) 和其他连接方法,但它们都只给我“80001M035NNYY1111111”...有谁知道为什么会发生这种情况以及我应该如何做才能得到我想要的结果。

【问题讨论】:

    标签: python string python-2.7 concatenation


    【解决方案1】:

    您的文件中可能有 Windows 行尾:\r\n。通过拆分\n,您将留下\r,它返回到行首。您可以手动修剪它:

    with open("input.txt") as f:
        data = [line.rstrip() for line in f]
    

    【讨论】:

    • 是的!问题是 windows 行尾,谢谢!我用applicant = applicant[:20] + str(8)解决了这个问题,但是你的解决方案更好!
    【解决方案2】:

    这应该可行

    [GCC 7.3.0] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> data = open("input.txt").read().split("\n")
    >>> applicant = data[2] + str(8)
    >>> print applicant
    00001M035NNYY11111118
    >>>
    

    如果这不起作用,您的文本文件可能有问题。

    【讨论】:

      猜你喜欢
      • 2018-03-02
      • 2018-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多