Некоторые основные вопросы о Python

Речь идет не о AndroidManifest.xml вашего приложения.

Сообщение об ошибке говорит о том, что существует конфликт между библиотекой support-compat 28.0.0 и другой библиотекой, использующей androidx. Я сомневаюсь, что эта библиотека полос строится с AndroidXX. 'com.stripe: stripe-android: 8.5.0'

Вы можете решить эту проблему, перенеся ваше приложение на использование androidx вместо старых библиотек поддержки.

5
задан rg88 16 April 2009 в 07:11
поделиться

4 ответа

Прежде всего, это не объекты Microsoft Word - это UTF-8. Вы конвертируете их в объекты HTML.

Пифонический способ написать что-то вроде:

chr(0xe2) . chr(0x80) . chr(0x98)

будет выглядеть следующим образом:

'\xe2\x80\x98'

Но Python уже имеет встроенные функции для того типа преобразования, которое вы хотите выполнить:

def defang(string):
    return string.decode('utf-8').encode('ascii', 'xmlcharrefreplace')

Это заменит коды UTF-8 в строка для символов типа ' с числовыми объектами типа «.

Если вы хотите заменить эти числовые объекты именованными, где это возможно:

import re
from htmlentitydefs import codepoint2name

def convert_match_to_named(match):
    num = int(match.group(1))
    if num in codepoint2name:
        return "&%s;" % codepoint2name[num]
    else:
        return match.group(0)

def defang_named(string):
    return re.sub('&#(\d+);', convert_match_to_named, defang(string))

И используйте его так:

>>> defang_named('\xe2\x80\x9cHello, world!\xe2\x80\x9d')
'“Hello, world!”'

Чтобы завершить ответ, эквивалентный код вашего примера для обработки файла будет выглядеть примерно так:

# in Python, it's common to operate a line at a time on a file instead of
# reading the entire thing into memory

my_file = open("test100.html")
for line in my_file:
    print defang_named(line)
my_file.close()

Обратите внимание, что этот ответ нацелен на Python 2.5; ситуация с Unicode кардинально отличается от Python 3+.

Я также согласен с приведенным ниже комментарием bobince: если вы можете просто сохранить текст в формате UTF-8 и отправить его с правильным типом содержимого и кодировкой, сделайте это; если вам нужно, чтобы он был в ASCII, придерживайтесь числовых сущностей - в действительности нет необходимости использовать именованные.

20
ответ дан 18 December 2019 в 06:12
поделиться

Лучше всего для очистки Word HTML использовать HTML Tidy , в котором есть специальный режим. Есть несколько оболочек Python , которые вы можете использовать, если вам нужно сделать это программно.

2
ответ дан 18 December 2019 в 06:12
поделиться

Код Python имеет тот же контур.

Просто замените все PHP-измы на Python-isms.

Начните с создания объекта File . Результатом file.read () является объект string . Строки имеют операцию замены.

3
ответ дан 18 December 2019 в 06:12
поделиться

Как сказал С. Лотт, код Python будет очень и очень похож - единственными отличиями по существу будет функция звонки / операторы.

Я не думаю, что Python имеет прямой эквивалент file_get_contents () , но, поскольку вы можете получить массив строк в файле, вы можете присоединить их к символам новой строки, как это:

sample = '\n'.join(open(test, 'r').readlines())

РЕДАКТИРОВАТЬ: не берите в голову, есть гораздо более простой способ: sample = file (test) .read ()

Замена строки почти такая же, как str_replace () :

sample = sample.replace(search, replace)

И вывод так же прост, как оператор print :

print defang_word(sample)

Итак, как вы можете видеть, две версии выглядят почти одинаково.

1
ответ дан 18 December 2019 в 06:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: