Моя программа написана на python, и я использую pythontidy и reindent для ее очистки. Однако я бы хотел более эффективный метод, чем переименование файла, если я просто посмотрю на документ, чтобы узнать, как теперь принудительно переименовывать файлы и заставить pythontidy вести себя больше как переопределение, т. Е. Включить его для всех файлов в каталоге просто запустив его:

$ python ./PythonTidy-1.20.py mai 
mailman.py   main.old.py  main.py      main.py.bak  main.pyc     
ubuntu@ubuntu:/media/Lexar/montao/montaoproject$ python ./PythonTidy-1.20.py main.py main.tidy.py
ubuntu@ubuntu:/media/Lexar/montao/montaoproject$ python ./PythonTidy-1.20.py i18n.py i18n.tidy.py
ubuntu@ubuntu:/media/Lexar/montao/montaoproject$ mv i18n.tidy.py i18n.py
ubuntu@ubuntu:/media/Lexar/montao/montaoproject$ mv main.tidy.py main.py
ubuntu@ubuntu:/media/Lexar/montao/montaoproject$ python ./reindent .
python: can't open file './reindent': [Errno 2] No such file or directory
ubuntu@ubuntu:/media/Lexar/montao/montaoproject$ python ./reindent.py .
reindented ./appengine_config.py 
reindented ./i18n.py 
reindented ./main.py 
reindented ./util.py 
reindented ./facebookapi.py 
reindented ./br.py 
reindented ./PythonTidy-1.20.py 
reindented ./in.old.py 
reindented ./login_required.py 
ubuntu@ubuntu:/media/Lexar/montao/montaoproject$ 

1 ответ1

1

Я бы лично использовал скрипт Python (или shell, perl и т.д.) Для этого. Вы можете использовать команду find и делать некоторые вещи с каждым найденным файлом .py, но для меня это приближается к строке (3 команды; reindent, pythontidy, mv,), где я бы написал скрипт вместо того, чтобы пытаться получить такой комплекс Право команды. Я предполагаю, что это было бы, но не попробовал это:

find . -name '*.py' -exec python reindent.py {} \; \
 -exec python PythonTidy-1.20.py {} > temp \; -exec mv temp {} \;

Документы для PythonTidy говорят - ну, я не могу найти ни одного.

Код для PythonTidy делает его похожим на то, что приведение в порядок на месте не вариант. Очевидно, что скрипт позволяет вам выводить в stdout (и читать ввод из stdin). Поэтому моя первая мысль была о том, что мы могли бы выполнить это так:

# Don't use this!!!
% python PythonTidy.py testfile.py > testfile.py

Является ли это хорошей идеей или нет, зависит от реализации PythonTidy; если он читает весь файл перед открытием вывода, у нас все хорошо. Но это не так, плохая идея.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .