2017-11-28 19 views
0

참고 : 파일 "\ n"은 길이가 1이고 문자열 "\ n"에 길이가 2 인 "\ n"이 사용됩니다. Split()은 파이썬에서 NewLine을 건너 뜁니다

나는 그것이 단어의 목록을 제공 Line="Some thing\n"Line.split() 후 제공

[ "일부", "일"]와 \n를 건너 그것은 thing\n를 제공하지 않습니다. 나는 기본적으로 strip() 기능을 사용하지 않았다. 일반 strip() 함수는 줄 끝에서 \n을 건너 뛰는 데 사용됩니다.

check.txt :

abc abc abc \\n abc abc abc abc abc abc abc abc abc abc abc abc abc 

abc abc abc 

내 코드는 다음과 같습니다

fileread=open("check.txt","r") 
for line in fileread: 
    print("Line:",line , "lenght :",len(line)) 
    words=line.split()     #It Skip NewLine by Default 
    print("Words List in Line:",words) 

출력 :

Line: abc abc abc \\n abc abc abc abc abc abc abc abc abc abc abc abc abc 
lenght : 68 
Words List in Line: ['abc', 'abc', 'abc', '\\\\n', 'abc', 'abc', 'abc', 'abc', 'abc', 'abc', 'abc', 'abc', 'abc', 'abc', 'abc', 'abc', 'abc'] 
Line: 
lenght : 1 
Words List in Line: [] 
Line: abc abc abc 
lenght : 12 
Words List in Line: ['abc', 'abc', 'abc'] 

, 기능을 분할 할 수 있습니다 내 질문은 행에서 특수 문자를 제거 할 수 있습니다 기본적으로? 왜 라인 : "\ n"목록 [ "\ n을을"] 생성하고 빈 목록을 []

+1

어디에서 문제가됩니까? –

+0

출력 결과에 파일에 개행 문자가 아닌 실제 문자 인 ""\\ n "'이 포함되어 있습니다. 파일 반복문은 이미 반복마다 한 줄로 입력을 공급합니다. 단, 'fileread : 행에 대해'라고 말하면 끝에는 제외하고 줄 바꿈 문자를 보지 않을 것입니다. – tzaman

+0

내 질문은, 분할 기능은 기본적으로 줄에서 특수 문자를 건너 뛸 수 있습니까? 왜 Line : "\ n"list.split() 뒤에 list [ "\ n"]를 만들지 않으면 비어있는 목록 []을 만듭니다. 왜 "\ n"을 사용하지 않았습니까? line.split ("\ n "). – Artier

답변

0

분할() 함수는 Link

Representation Description 
\n    Line Feed 
\r    Carriage Return 
\r\n   Carriage Return + Line Feed 
\v or \x0b  Line Tabulation 
\f or \x0c  Form Feed 
\x1c   File Separator 
\x1d   Group Separator 
\x1e   Record Separator 
\x85   Next Line (C1 Control Code) 
\u2028   Line Separator 
\u2029   Paragraph Separator 

에 default.Description에 의해 모든 문자를 분할 생성하지 않습니다 파이썬 코드는

>>> data= "dsddddd\ndasdasd\ndasdasdas\nasfsafs\n" 
>>> print(data.split()) 
['dsddddd', 'dasdasd', 'dasdasdas', 'asfsafs'] 
>>> data="aaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaa" 
>>> print(data.split()) 
['aaaaaaaaaaa', 'aaaaaaaaaaaa', 'aaaaaaaaaa'] 
>>> data= "dsddddd\rdasdasd\rdasdasdas\rasfsafs\r" 
>>> print(data.split()) 
['dsddddd', 'dasdasd', 'dasdasdas', 'asfsafs'] 
>>> data= "dsddddd\u2029dasdasd\u2029dasdasdas\u2029asfsafs\u2029" 
>>> print(data.split()) 
['dsddddd', 'dasdasd', 'dasdasdas', 'asfsafs'] 
>>>