我有一个包含随机字母,数字和字符的文本文件。我必须删除特殊字符,最后只打印字母数字字符,同时打印过程。
出于某种原因,我的程序正在打印:
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,"'")
谢谢。
答案 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'
>>>