Python - \ n出现在连接字符串中

时间:2017-06-16 16:04:29

标签: python string concatenation

我的Python代码一直存在问题。我试图连接两个字符串对象的值,但是当我运行代码时,它会在两个字符串之间保持打印'\ n'。 我的代码:

while i < len(valList):
    curVal = valList[i]
    print(curVal)
    markupConstant = 'markup.txt'
    markupFileName = curVal + markupConstant
    markupFile = open(markupFileName)

现在当我运行它时,它给了我这个错误:

OSError: [Errno 22] Invalid argument: 'cornWhiteTrimmed\nmarkup.txt'

在两个字符串之间看到\ n?我通过单独打印每个字符串来解析代码,并且它们都没有自己包含\ n。关于我做错了什么的想法?

提前致谢!

3 个答案:

答案 0 :(得分:4)

连接本身并不会添加\nvalList可能是在文件对象上调用readlines()的结果,因此其中的每个元素都有一个尾随\n。在使用之前,请在每个元素上调用strip

while i < len(valList):
    curVal = valList[i].strip()
    print(curVal)
    markupConstant = 'markup.txt'
    markupFileName = curVal + markupConstant
    markupFile = open(markupFileName)

答案 1 :(得分:2)

你实际打印出python语句时没有看到\ n的原因是因为\ n在技术上是换行符。当你实际打印时,你不会看到这个,它只会跳到一个新的行。问题是当你在两个字符串的中间有这个时,它会导致问题。您的问题的解决方案是条带方法。您可以在此处阅读其文档(https://www.tutorialspoint.com/python/string_strip.htm),但基本上您可以使用此方法从任何字符串中删除换行符。

答案 2 :(得分:0)

只是为了补充其他答案,解释为什么会这样:

当您需要实际检查字符串包含的字符时,您无法简单地打印它。很多角色都是&#34;隐形&#34;打印时

首先将字符串转换为列表:

0

1

2

3

4

5

...

30

31

32

或者我个人的最爱:

list(curVal)

这些将创建列表,正确显示所有难以看到的字符。