2017-12-12 5 views
-3

임의의 문자, 숫자 및 문자가있는 텍스트 파일이 있습니다. 특수 문자를 제거하고 프로세스를 인쇄하는 동안 영숫자로 끝나야합니다. 텍스트는 2 선, 대신에이 같이 4에 가야 할 때파이썬 프로그램은 새로운 줄에 인쇄하지 말아야합니다.

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

' ,,s.8,ymsw5w-86 

'->' s8ymsw5w86 ' 

가 :

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

귀하의 질문은 매우 디입니다 읽기가 힘듭니다. [format] (https://stackoverflow.com/editing-help) 해보십시오. 입력 파일에 정확히 무엇이 있는지와 예상 출력이 무엇인지 알기는 어렵습니다. – Galen

+0

python print는 기본적으로 새 줄을 삽입합니다. 이것을 사용하지 못하도록 설정하십시오. – Bobby

+0

[print] (https://docs.python.org/3/library/functions.html#print)는 파일에 줄 바꿈 문자가 없다고 말하지 않는 한 줄 바꿈을 인쇄합니다. – wwii

답변

1

파일의 각 줄 끝에 끝에 개행 문자가 있습니다. 당신이 그것을 인쇄 할 수없는 경우, f-strings를 사용하여 오프

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' 

를 제거 : 당신은 문자열에 작은 따옴표를 원하는 경우, 따옴표로 문자열을 둘러싸과 마주 반대

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' 
>>> 
+0

아직 요청하지 않은 것처럼 2 줄로 인쇄하지 않습니다. (이제 3 줄에 인쇄합니다.) – Jaakkath

+0

놀라운, 고맙습니다! 여전히 텍스트에 '(아포스트로피?)를 가져와야합니다. – Jaakkath

+0

다음과 같은 텍스트 옆에 : 'asdf55', 현재 그것은 사이에 공백이 rstrip() 작동하지 않는 것. – Jaakkath

관련 문제