2016-06-29 5 views

답변

0

이 할 것 :

with open("f1", "r") as f1: 
    with open("f2", "w") as f2: 
     f2.write(" ".join(map(lambda x: x.strip("\n"), f1.readlines()))) 

는 "\ n을"을 제거, 모든 라인이 F1을 형성 가지고 " "로 가입하고 있음을 쓰기 이것은 내가 지금까지 가지고 있지만 그것이 작동하지 않는 것입니다 문자열을 새 파일에 추가하십시오.

with open("foo") as f1, open("bar", 'w') as f2: 
    f2.write(" ".join(line.rstrip('\n') for line in f1)) 
+0

읽기 모드로 열린'f2'에 쓸 수 있는지 알지 못합니다. –

+0

@ap, true, 복사/붙여 넣기 – Netwave

+0

은 단순히'f2.write ("".join (f1.readlines()))'를 사용하는 것이 더 좋지 않을 것입니다. – rsm

3

그냥 해당 증속 공간을 인쇄 Python 2.7+ 또는 Python 3.x에 있고 파일의 크기가 엄청나지 않다면 메모리에 넣을 수 있습니다.

with open(filename1, 'r') as fin, open(filename2, 'w+') as fout: 
    lines = fin.readlines() 
    cleaned = [line.strip() for line in lines] 
    joined = ' '.join(cleaned) 
    fout.write(joined) 
1

경우 : 파일이 거대한 (그들은 메모리에 맞지 예), 더 쉬운 방법이 될 것이없는 경우

... 

for i, line in enumerate(f1): 
    space = " " if i != 0 else "" 
    line = line.rstrip('\n') 
    f2.write(space + line) 

f1.close() 
f2.close() 

:

관련 문제