Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2021, 20:40   #1
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,039
По умолчанию Удалить все комментарии JS в текстовом файле

здравствуйте, как из переменной line? пока делаю вручную в блокноте))
\/\*(.+?)\*\/
2
решено, но ясно что криво, как это делается единожды открыв файл:
Код:
f2 = r'd:\Downloads\Speaking.js'
with open(f2, 'r', encoding='utf-8') as f_in:
    size = len([0 for _ in f_in])
with open(f2, 'r', encoding='utf-8') as f_in:
    s2 = f_in.read()
# print(size)
# print(len(s2))
with open(f2, 'r', encoding='utf-8') as f_in:
    x = 0
    for line in f_in:
а не как у меня открываю, чтобы считать, узнать размер строк, пройтись по каждой? спасибо
Ципихович Эндрю вне форума Ответить с цитированием
Старый 13.10.2021, 04:00   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Код:
import re

f2 = r'd:\Downloads\Speaking.js'

with open(f2, 'r', encoding = 'utf-8') as f:
    text = f.read()

text = re.sub('(?s)\/\*(.+?)\*\/', '', text)

with open(f2, 'w', encoding = 'utf-8') as f:
    f.write(text)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 13.10.2021, 08:52   #3
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,039
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
with open
с буквой r и w это понятно, а вообще не сделать, чтобы единожды было?
Ципихович Эндрю вне форума Ответить с цитированием
Старый 13.10.2021, 14:31   #4
alanatolich
Пользователь
 
Регистрация: 26.07.2013
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Ципихович Эндрю Посмотреть сообщение
с буквой r и w это понятно, а вообще не сделать, чтобы единожды было?
Имеете ввиду за одно открытие файла считать и перезаписать его?
alanatolich вне форума Ответить с цитированием
Старый 13.10.2021, 18:39   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

На мой взгляд, получается менее лаконично:
Код:
import re

f2 = r'd:\Downloads\Speaking.js'

with open(f2, 'r+', encoding = 'utf-8') as f:
    text = f.read()
    text = re.sub('(?s)\/\*(.+?)\*\/', '', text)
    f.seek(0)
    f.write(text)
    f.truncate()
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 14.10.2021, 08:34   #6
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,039
По умолчанию

Цитата:
Сообщение от alanatolich Посмотреть сообщение
Имеете ввиду за одно открытие файла считать и перезаписать его?
про перезаписать речи нет, имеется ввиду, открыть файл, взять в переменную
количество строк в файле
текст файла
и построчно читать файл
для этого у меня в посту есть три открытия файла, как бы работает, но на всякий не мешало бы знать.....
Ципихович Эндрю вне форума Ответить с цитированием
Старый 17.10.2021, 02:25   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Вам надо удалить комментарии из кода или "количество строк в файле, текст файла и построчно читать файл"? А еще комментарии могут быть многострочными, так что искать комментарий в каждой строке отдельно неверно.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 17.10.2021, 13:01   #8
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,039
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
так что искать комментарий в каждой строке отдельно неверно
я и не спорю, согласен, это файл JS, смотрю на его содержимое, проверяю Питоном, каждую строку, так как правится он вручную, по большому, всё что нужно сделано, просто для общего понимания, думаю, что его три раза открывать это глупость, понимаю, что можно раз открыть считать, поместить в переменную а уже с неё узнать количество строк и читать потом построчно с переменной, то есть в файле во всех строках кроме первой и последней должно быть окончание строго "]'],", а начало строго "['[", а последняя строка должна быть строго "]}" а у предпоследней строки должно быть окончание строго "]']" и много всякой лабуды.....
вот и попадающиеся комменты JS также нужно игнорировать, поэтому удаляю их
Ципихович Эндрю вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как умножить все числа в текстовом файле на одно число? NonTrivial C# (си шарп) 10 27.04.2019 20:23
как удалить любые две буквы между двумя знаками «>» и «/» в каждой строке в текстовом файле, используя java? vitalyoleg Общие вопросы по Java, Java SE, Kotlin 1 26.04.2019 14:26
В текстовом файле заменить все последовательности идущих подряд пробелов одним пробелом kava13 Общие вопросы C/C++ 0 03.06.2018 19:37
Нужно удалить все лишние пробелы в текстовом файле akademochka Помощь студентам 1 04.10.2012 20:48