使用.read()会添加额外的非类型字符

时间:2014-09-24 19:51:32

标签: python string loops

input = open("ex3.txt")
DNA = input.read()
DNA2 = "AAAACCCGGT"
print "string=", DNA,"len=", len(DNA)
print "strin2=",DNA2,"len=",len(DNA2)

返回

>string= AAAACCCGGT
>len= 11
>strin2= AAAACCCGGT len= 10

如您所见,两个看起来相同的字符串具有不同的长度,因为当我使用input.read()加载输入时,字符串以Nonetype结尾(编辑:实际上以'\ n'结尾)

有没有办法从文本文件加载字符串输入而不以Nonetype结尾?或者我应该按原样加载并拼接输入,如DNA [: - 1]假设.read()将始终将Nonetype作为最终值?

感谢您的任何提示:-D

编辑:我认为我对Nonetype感到困惑的原因是因为错误消息: “TypeError:无法连接'str'和'NoneType'对象”无论如何,调用.rstrip非常感谢所有人

1 个答案:

答案 0 :(得分:1)

文字模式下文件的

.read始终为\n iff ,并且有返回字符。这意味着如果该行之后没有另一行,DNA[:-1]可能会中断。

实现目标的一种方法是DNA.rstrip()。这将删除字符串右侧的空格。

另外,如果您知道要阅读一行,则可能需要.readlineread读取整个文件,可能是几行。