Python 들여쓰기 수정 방법
Python 코드에 일관성이 없는 들여쓰기가 있습니다.탭과 공백이 많이 섞여 있어 문제를 더욱 악화시킬 수 있으며, 공간 들여쓰기조차 보존되지 않습니다.
코드는 예상대로 작동하지만 유지보수가 어렵습니다.
코드를 깨지 않고 들여쓰기(HTML Tidy 등, Python의 경우)를 수정하려면 어떻게 해야 합니까?
하다를 사용하세요.reindent.py
되어 있는 Tools/scripts/
Python 설 python python :
하드 탭 문자를 사용하지 않고 공백 들여쓰기를 사용하도록 Python(.py) 파일을 변경합니다.또한 행 끝에서 여분의 공백과 탭을 잘라내고 파일 끝에 있는 빈 행을 제거합니다.또한 마지막 행이 새 행으로 끝나는지 확인합니다.
상세한 사용 순서에 대해서는, 이 스크립트를 참조해 주세요.
메모: Linux Distro에 기본적으로 Python과 함께 재인디텐트가 설치되어 있지 않은 경우:
에는 Linux Distros가 .reindent
되어 .python
하기 --> 「 」reindent
pip install reindent
.
p.s의 입니다. 대체 수단pip
, distros 패키지 매니저, distros 패키지 매니저,apt-get
,yum
,dnf
각 디스트로에는 다른 패키지에 명령줄 도구가 포함되어 있기 때문에 어떤 패키지에 명령줄 도구가 포함되어 있는지 확인해야 합니다.
이것을 실시하려면 , autopep8 에 도달합니다.
$ # see what changes it would make
$ autopep8 path/to/file.py --select=E101,E121 --diff
$ # make these changes
$ autopep8 path/to/file.py --select=E101,E121 --in-place
주의: E101과 E121은 pep8의 움푹 패인 부분(간단히 합격할 수 있다고 생각합니다)--select=E1
E1을 사용하다
재귀 플래그를 사용하여 전체 프로젝트에 적용할 수 있습니다.
$ autopep8 package_dir --recursive --select=E101,E121 --in-place
Python 코드를 PEP8 규격으로 변환하려면 도구를 참조하십시오.
autopep8 -i script.py
autopep8 사용
autopep8
가이드에nullstyle
따라 Python 코드를 자동으로 포맷합니다.를 사용합니다.pep8
에 의해, 「」의 부분인지 할 수 있습니다.nullcode
포맷해야 합니다. autopep8
의 수정이 합니다.nullformatting
에 될 수 문제pep8
.
pip install autopep8
autopep8 script.py # print only
autopep8 -i script.py # write file
Vim 을 사용하고 있는 경우는, 을 참조해 주세요.
*: ret**: retab*: [ range ]ret [ ab ][ new _ tabstop ]다음을 포함하는 공백의 모든 시퀀스를 바꿉니다.<탭>에는 새로운 공백 문자열이 추가되어 있습니다.탭 중지 값이 지정되었습니다.새로 지정하지 않으면탭 중지 크기 또는 0입니다. Vim은 현재 값을 사용합니다.'탭스톱'의 경우. '탭스톱'의 현재 값은 항상 다음을 위해 사용됩니다.기존 탭의 너비를 계산합니다. !를 사용하면 Vim은 일반 문자열만 대체합니다.탭이 있는 공간(해당하는 경우) 'expandtab'을 켜면 Vim은 모든 탭을적절한 공간 수. 이 명령은 'tabstop'을 지정된 새 값으로 설정합니다.파일 전체(기본값)에서 수행될 경우눈에 보이는 변화는 없습니다. 주의:이 명령어는 임의의 <Tab> 문자를 변경합니다.C 프로그램의 문자열 안에 있습니다.피하려면 "\t"를 사용합니다.(어쨌든 그것은 좋은 습관이다) ":retab!"은 다음과 같이 공백 시퀀스를 변경할 수도 있습니다.<탭> 문자. 인쇄 f()가 흐트러질 수 있습니다. {Vi에 없음}|+ex_extra| 기능이 디세블로 되어 있는 경우는 사용할 수 없습니다.컴파일 시간
예를 들어 다음과 같이 입력합니다.
: ret(리트)
모든 탭이 공백으로 확장됩니다.
하고 싶을지도 모른다
:se et " :set expand tab의 줄임말
새로운 행에 리터럴탭이 사용되지 않게 합니다.
Vim을 안 쓰시는 분들은
perl - i . bak - pe " s / \ t / ' ' x ( 8 - pos ) % 8 / eg " 。화이
탭은 공백으로 대체되며 탭은 8자마다 정지합니다.file.py
(원본은 로 되어 있습니다).file.py.bak
(만일을 위해)탭이 4칸마다 멈추면 8을 4로 바꿉니다.
Vim을 사용하는 경우, 키를 누르고, 타이핑을 하는 것보다 더 많이 관여해서는 안 됩니다.
:%s/\t/ /g
...변경을 원하는 파일에 저장.그러면 모든 탭이 4개의 공간으로 변환됩니다.띄어쓰기가 일정하지 않으면 그게 더 어려워져요.
PythonTidy도 있습니다(HTML Tidy를 좋아한다고 하셨기 때문에).
탭 청소보다 훨씬 더 많은 작업을 수행할 수 있습니다.그런 게 좋다면 볼만해요.
대부분의 UNIX 유사 시스템에서는 다음을 실행할 수도 있습니다.
expand -t4 oldfilename.py > newfilename.py
탭을 4 이외의 공백으로 바꾸려면 명령줄에서 번호를 변경합니다.셸 스크립트를 쉽게 작성하여 한 번에 여러 파일을 처리할 수 있으며 원래 파일 이름을 유지할 수 있습니다.
모듈이 없어져서 재설치 스크립트가 작동하지 않았습니다.아무튼 이걸 찾았어요sed
명령어를 사용하여 작업을 완벽하게 수행할 수 있습니다.
sed -r 's/^([ ]*)([^ ])/\1\1\2/' file.py
나처럼 게을러진다면 Wingware Python IDE의 평가판을 다운로드 할 수도 있습니다. Wingware Python IDE는 엉망이 된 들여쓰기 자동 수정 도구를 갖추고 있습니다.그것은 꽤 잘 작동한다.http://www.wingware.com/
Emacs를 사용해 보세요.Python에서 필요한 들여쓰기를 지원합니다.이 링크를 확인해 주세요.http://python.about.com/b/2007/09/24/emacs-tips-for-python-programmers.htm
IDLE을 시도하고 +를 사용하여 들여쓰기를 찾습니다.
이 문제에 대한 간단한 해결책이 있습니다.먼저 ":retab"을 입력하고 ":retab!"을 입력하면 모든 것이 정상입니다.
툴이 필요한 경우2-space indented
python 스크립트tab indented
다음 온라인 도구를 사용하십시오.
https://www.tutorialspoint.com/online_python_formatter.htm
구글의 멋진 프로젝트인 YAPF도 있다.
전체 프로젝트를 자동으로 다시 포맷하거나 프로젝트의 들여쓰기/포맷이 올바른지 확인할 수 있습니다.나는 그것을 상업적인 프로젝트에 사용했고 그것을 추천한다.
언급URL : https://stackoverflow.com/questions/1024435/how-to-fix-python-indentation
'programing' 카테고리의 다른 글
MySQL/MariaDB: 케이스 스테이트먼트를 사용하여 프로시저를 만들 수 없습니다. (0) | 2022.10.30 |
---|---|
SQL 쿼리를 JSON 형식의 텍스트 파일로 내보내기 (0) | 2022.10.21 |
JavaScript에서 날짜에 월을 추가하는 방법 (0) | 2022.10.21 |
Larabel의 쿼리 빌더 JSON 셀렉터 'field->key'가 구문 오류를 발생시킵니다. (0) | 2022.10.21 |
Class.newInstance() 대신 사용할 항목 (0) | 2022.10.21 |