不应该在新行上打印Python程序

时间:2017-12-12 23:56:08

标签: python file printing line newline

我有一个包含随机字母,数字和字符的文本文件。我必须删除特殊字符,最后只打印字母数字字符,同时打印过程。

出于某种原因,我的程序正在打印:

Line read' ,,s.8,ymsw5w-86    
 '

' ,,s.8,ymsw5w-86

 '->' s8ymsw5w86 '

当文本只有2行时,而不是4行。就像这样:

Line read' ,,s.8,ymsw5w-86'

' ,,s.8,ymsw5w-86' -> 's8ymsw5w86'

我不明白什么是错的。这是我的代码:

file1=open(textfile1,"r")

for line in file1:

    line2="".join(filter(str.isalnum,line))

    print("Line read","'",str(line),"'")

    print("'",str(line),"'->'",line2,"'")

谢谢。

1 个答案:

答案 0 :(得分:1)

文件中的每一行都有一个换行符。如果您不想打印,请将其剥离

print("Line read","'",str(line.strip()),"'")
print("'",str(line.strip()),"'->'",line2,"'")
s1 = ',,s.8,ymsw5w-86 \n'
s2 = ' ,,s.8,ymsw5w-86\n'
s3 = ' s8ymsw5w86 \n'

使用f-strings:如果您想在字符串中使用单引号,请将字符串括在双引号中,反之亦然

print(f"'{s1.strip()}'")
print(f"'{s2.strip()}' --> '{s3.strip()}'")


>>>  
',,s.8,ymsw5w-86'
',,s.8,ymsw5w-86' --> 's8ymsw5w86'
>>>

s1 = ',,s.8,ymsw5w-86 \n'
s2 = "".join(filter(str.isalnum,s1))

print(f"Line read ... '{s1.strip()}'")
print(f"'{s1.strip()}' --> '{s2.strip()}'")

>>>
Line read ... ',,s.8,ymsw5w-86'
',,s.8,ymsw5w-86' --> 's8ymsw5w86'
>>>