마지막 가변 길이 줄 인쇄 및 덮어 쓰기 (IPython)

에밀 보데

마지막으로 인쇄 된 줄을 덮어 쓰는 방법에 대한 질문은 이전에 요청되고 답변되었습니다 (예 : 여기 ).하지만 모든 답변은 마지막 줄을 비슷한 길이로 덮어 쓴다고 가정하는 것 같습니다 (예 : "2 % 완료"라는 진행 표시기에서) "1 % 완료"를 덮어 씁니다.

그러나 "Now reading file path/to/xxx/file.ext..."다음 파일 이름이 더 짧을 수있는와 같은 가변 길이 문을 인쇄하고 싶습니다 . 간단한 접근 방식을 사용하고 먼저 인쇄 한 "Now reading ./path/with/many/long-named/subdirectories/version/LongFileNameAsWell.ext..."다음을 사용 "Now reading ./file.ext..."하면 결과는 다음과 같은 줄이됩니다.

Now reading ./file.ext... ng-named/subdirectories/version/LongFileNameAsWell.ext

해결 방법은 내 모든 인쇄 문자열에 공백을 추가하는 것이지만, 전체 파일 이름을 덮을 수있는 충분한 공백이있는 동안 줄 바꿈으로 둘러싸 지 않도록해야합니다. 이 모든 것이 많은 오버 헤드, 버그를위한 공간 등을 추가합니다.

이것을 수행하는 Pythonic 방법이 있습니까?

기록을 위해 Windows의 IPython 콘솔과 함께 Spyder에서 Python 3.7을 사용하고 있습니다.

MrFuppes

Sayandip Dutta의 답변기반으로get_terminal_size from shutil사용 하여 현재 줄 길이 설정을 얻은 다음 새 줄을 작성하고 그보다 짧은 경우 공백을 추가 할 수도 있습니다.

import time
from shutil import get_terminal_size

l = ["1st statment is long",
     "2nd short",
     "3rd statement is much longer...",
     "done."]

sz = get_terminal_size().columns
for i in l:
    print('\r', end=i.ljust(sz, ' '))
    time.sleep(1)

편집 : 나는 이것이 매우 긴 줄에서 작동하지 않을 수 있다는 것을 깨달았습니다 ... 그래서 당신은 다음과 같은 것을 사용해야 할 것입니다.

lines = ["1st statment is long",
         "2nd short",
         "3rd statement is much longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer longer...",
         "more lines",
         "done."]

widths = [0] + [len(l) for l in lines][:-1]
for l, w in zip(lines, widths):
    print('\r', end=l.ljust(w, ' '))
    time.sleep(1)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

파일에 줄 추가 및 덮어 쓰기-Python

분류에서Dev

가변 템플릿 및 덮어 쓰기

분류에서Dev

덮어 쓰지 않고 배열에 추가하는 방법 (줄 읽기 및 분해) PHP

분류에서Dev

인쇄 후 유닉스 쉘에서 줄 덮어 쓰기

분류에서Dev

기존을 덮어 쓰지 않고 줄 추가

분류에서Dev

파이썬 덮어 쓰기 및 텍스트 파일에 추가

분류에서Dev

파이썬, 목록에 값 추가 및 덮어 쓰기

분류에서Dev

복사 및 덮어 쓰기 전에 파일이 다른지 확인하는 방법은 무엇입니까?

분류에서Dev

ClosedXML-데이터를 덮어 쓰지 않고 새 행 추가 (첫 번째 줄)

분류에서Dev

Bash : 열 추가 및 변수 쓰기, 줄마다 다름

분류에서Dev

Perl 한 줄 + 마지막 단어와 일치하지만 공백이 있으면 줄 인쇄

분류에서Dev

마지막 인쇄 된 줄에 단어가 포함되어 있는지 일괄 확인

분류에서Dev

첫 줄과 마지막 줄없이 파일 내용 인쇄

분류에서Dev

변수에 숫자 증가 값 덮어 쓰기 및 저장

분류에서Dev

반짝이는 변수 덮어 쓰기

분류에서Dev

Python 변수 덮어 쓰기 방지

분류에서Dev

파일 (.csv)에 데이터 쓰기 및 덮어 쓰기

분류에서Dev

배열의 마지막 요소가 이전 요소를 모두 덮어 쓰는 이유는 무엇입니까?

분류에서Dev

창이 "절전 저장"및 공유 파티션 덮어 쓰기 방지

분류에서Dev

방향에 맞게 이미지 자동 회전 (및 덮어 쓰기)

분류에서Dev

덮어 쓰지 않고 출력을 사용하여 파일 찾기 및 이동

분류에서Dev

비어 있지 않은 마지막 줄 가져 오기

분류에서Dev

파이썬에서 파일의 마지막 줄에 쓰기

분류에서Dev

덮어 쓰기 / 지우기없이 기존 파일에 쓰기

분류에서Dev

콘솔이 줄을 덮어 쓰지 않도록 방지

분류에서Dev

셀 값 문자열의 길이가 1 인 행에서 마지막 값 찾기

분류에서Dev

VBA .SaveAs 및 덮어 쓰기

분류에서Dev

마지막 필드를 기반으로하는 Uniq, 마지막 줄 유지 및 중복 수 추가

분류에서Dev

파이썬 예외 : 어떻게 스택 추적의 마지막 10 줄을 인쇄하려면?

Related 관련 기사

  1. 1

    파일에 줄 추가 및 덮어 쓰기-Python

  2. 2

    가변 템플릿 및 덮어 쓰기

  3. 3

    덮어 쓰지 않고 배열에 추가하는 방법 (줄 읽기 및 분해) PHP

  4. 4

    인쇄 후 유닉스 쉘에서 줄 덮어 쓰기

  5. 5

    기존을 덮어 쓰지 않고 줄 추가

  6. 6

    파이썬 덮어 쓰기 및 텍스트 파일에 추가

  7. 7

    파이썬, 목록에 값 추가 및 덮어 쓰기

  8. 8

    복사 및 덮어 쓰기 전에 파일이 다른지 확인하는 방법은 무엇입니까?

  9. 9

    ClosedXML-데이터를 덮어 쓰지 않고 새 행 추가 (첫 번째 줄)

  10. 10

    Bash : 열 추가 및 변수 쓰기, 줄마다 다름

  11. 11

    Perl 한 줄 + 마지막 단어와 일치하지만 공백이 있으면 줄 인쇄

  12. 12

    마지막 인쇄 된 줄에 단어가 포함되어 있는지 일괄 확인

  13. 13

    첫 줄과 마지막 줄없이 파일 내용 인쇄

  14. 14

    변수에 숫자 증가 값 덮어 쓰기 및 저장

  15. 15

    반짝이는 변수 덮어 쓰기

  16. 16

    Python 변수 덮어 쓰기 방지

  17. 17

    파일 (.csv)에 데이터 쓰기 및 덮어 쓰기

  18. 18

    배열의 마지막 요소가 이전 요소를 모두 덮어 쓰는 이유는 무엇입니까?

  19. 19

    창이 "절전 저장"및 공유 파티션 덮어 쓰기 방지

  20. 20

    방향에 맞게 이미지 자동 회전 (및 덮어 쓰기)

  21. 21

    덮어 쓰지 않고 출력을 사용하여 파일 찾기 및 이동

  22. 22

    비어 있지 않은 마지막 줄 가져 오기

  23. 23

    파이썬에서 파일의 마지막 줄에 쓰기

  24. 24

    덮어 쓰기 / 지우기없이 기존 파일에 쓰기

  25. 25

    콘솔이 줄을 덮어 쓰지 않도록 방지

  26. 26

    셀 값 문자열의 길이가 1 인 행에서 마지막 값 찾기

  27. 27

    VBA .SaveAs 및 덮어 쓰기

  28. 28

    마지막 필드를 기반으로하는 Uniq, 마지막 줄 유지 및 중복 수 추가

  29. 29

    파이썬 예외 : 어떻게 스택 추적의 마지막 10 줄을 인쇄하려면?

뜨겁다태그

보관