2013-10-16 2 views
0

나는 14 줄의 말로 된 텍스트 파일을 가지고 있으며 목록의 목록 항목을 5 줄부터 시작하여이 줄 끝에 추가하고 싶습니다. 누구든지 나를 도울 수 있습니까? 는 내가이 텍스트 파일 test.txt라는이 예 :목록에서 숫자를 파이썬을 사용하여 기존 파일에 추가

a b 
12 
1 
four 
/users/path/apple 
/users/path/banana 
.. 
.. 

을하고 난 다음 목록을

사이클이 = [21,22,23, .....]

는 내 질문은 어떻게 라인의 끝으로이 목록 항목을 추가 할 수 있습니다 같은 내가 얻을이 :

a b 
12 
1 
four 
/users/path/apple 21 
/users/path/banana 22 
.. 
.. 

내가 파이썬에서 아주 좋은 아니에요이는 간결체 한자처럼 보인다 전자 문제. 어떤 도움을 주시면 감사하겠습니다. 이 같은

+2

줄에 추가해야하는지 여부를 어떻게 알 수 있습니까? 슬래시? – kojiro

+0

지금까지 시도한 코드를 보여줄 수 있습니까? –

+0

처음 네 줄에 목록 항목을 추가하고 싶지 않습니다. 지금까지 내가 시도하고 목록 항목은 내가 원하지 않는 새로운 라인으로 추가됩니다. – user2215228

답변

0

는 일반적으로 파일을 수정할 수 없습니다. 귀하의 경우에는

, 당신이 원하는 :

  1. 는 라인에 뭔가를 추가, 파일을 읽어 선으로 라인 (선택적으로)
  2. 그 라인을 다시 작성합니다.

여러 가지 방법으로 할 수 있습니다. -로드> 쓰기 다시 수정 된 문자열은 간단한 것이다 :

with open("path/to/my/file/test.txt", 'rb') as f: 
    # Strip will remove the newlines, spaces, etc... 
    lines = [line.strip() for line in f.readlines()] 
numbers = [21, 22, 23] 
itr = iter(numbers) 
with open("path/to/my/file/test.txt", 'wb') as f: 
    for line in lines: 
     if '/' in line: 
      f.write('%s %s\n' % (line, itr.next())) 
     else: 
      f.write('%s\n' % line) 

이 방법으로 문제는 당신이 당신의 처리에 실수를 할 경우, 원본 파일을 파괴한다는 것이다.

  • 아마도 결국 이름을 바꾸면, 행의 목록에있는 모든 수정을합니까 확인하고,
  • 쓰기 다시 새롭게 생성 된 파일에 전체 목록을 다시 쓰기 : 기타 방법을하는 것입니다.

항상 그렇듯이 Python doc은 새로운 기능과 패턴을 발견하는 데 반드시 좋은 읽을 거리입니다.

+0

을 사용할 수 있습니다. – user2215228

0

뭔가 : (마지막 줄 후) 파일의 끝에 일을 추가 할 제외

for line in file.readlines(): 
    print line.rstrip(), cycle.pop(0) 
0
cycle = [21, 22, 23] 
i = 0 
with open('myfile.txt', 'r') as fh: 
    with open('new_myfile.txt', 'w' as fh_new: 
     for line in fh: 
      addon = '' 
      if i < len(cycle): 
       addon = cycle[i] 
      fh_new.write(line.strip() + addon + '\n') 
      i += 1    
관련 문제