Русское сообщество Sublime Text
Основной раздел => Вопросы и ответы => Тема начата: zo0m от Января 01, 2015, 14:00:48
-
Привет. С праздниками Вас.
В процессе компиляции .py-файлов, в папке проекта создаются .pyc-хвосты. Я бы хотел их сразу удалять средствами сублайм-плагина. Все пути в сублайме экранируются дополнительным слешем: my_path = "D:\\work\\test.pyc", можно также так: my_path = r"D:\work\test.pyc"
В плагине пишу os.remove(my_path) и получаю: FileNotFoundError: [WinError 2] Не удается найти указанный файл: 'D:\\work\\test.pyc'
Получается что из под сублайма пути в питон передаются с двойными слешами. Это решается выносом функции поиска-удаления в отдельный файл и запуском через: window.run_command('exec', {'cmd': ['python', '-u', 'del.py'], 'working_dir': ms_path})... но тогда del.py приходится копировать в папку проекта и это плохо, потому что нарушается целостность плагина.
Как реализовать удаление файлов из сублайма?
Может есть плагин с таким функционалом?
-
Это какой-то закон подлости.. вчера весь день убил на поиск решения. Как только описал проблему на форуме, через пять минут нашел способ в умной книге.. Вот рабочий вариант:
import os
from glob import glob
def delete_pyc(self, ms_path): # Удалить все *.pyc в указаной папке ms_path
counter = 0
for pyc_path, dirs, files in os.walk(ms_path):
pattern = glob(pyc_path + os.sep + '*.pyc')
for fn in pattern:
print(fn)
os.remove(fn)
counter += 1
print("Total .pyc deleted:", counter)
Возник новый вопрос: Чистка *.pyc файлов начинается раньше, чем заканчивается компиляция *.py.. Поставил паузу но решение плохое.. иногда компиляция затягивается и чистка не происходит полностью.
window.run_command('exec', {'cmd': ['python', '-u', build[file]], 'working_dir': ms_path}) # компиляция
time.sleep(5) # ждать 5 сек
self.delete_pyc(ms_path) # почистить *.pyc
- Как поставить задачи на последовательный конвеер?