\ W для обнаружения escape-последовательности - Regex

Для сохранения загруженного файла

    from flask import Flask
    from flask_restful import Resource, Api, reqparse
    import werkzeug

    class UploadAudio(Resource):
      def post(self):
        parse = reqparse.RequestParser()
        parse.add_argument('file', type=werkzeug.datastructures.FileStorage, location='files')
        args = parse.parse_args()
        audioFile = args['file']
        audioFile.save("your_file_name.jpg")
достаточно:
0
задан overexchange 13 July 2018 в 18:01
поделиться

1 ответ

Чтобы получить желаемый результат:

  1. Прочитайте файл по строкам.
  2. Удалите последний символ, если он «\».
  3. Присоедините измененные строки.

Вышеуказанные операции должны обеспечить требуемый результат. Я думаю, что использование regex просто усложнит решение без каких-либо дополнительных преимуществ.

Цитирование doc в лексическом анализе:

Когда 'r' или префикс «R», символ, следующий за обратной косой чертой, включен в строку без изменений, и все обратные косые черты остаются в строке. Например, строковый литерал r "\n" состоит из двух символов: обратная косая черта и строчная буква "n". Кавычки строк могут быть экранированы с обратной косой чертой, но обратная косая черта остается в строке; например, r "\" "является допустимым строковым литералом, состоящим из двух символов: обратная косая черта и двойная кавычка; r" \ "не является допустимым строковым литералом (даже необработанная строка не может заканчиваться нечетным числом обратных косых черт). В частности, необработанная строка не может заканчиваться одним обратным слэшем (поскольку обратная косая черта избегает следующего символа кавычки). Обратите также внимание, что одна обратная косая черта, сопровождаемая новой строкой, интерпретируется как эти два символа как часть строки, а не как продолжение строки .

1
ответ дан gaganso 17 August 2018 в 12:20
поделиться
  • 1
    Но вопрос все еще остается ... print(re.search(r'\\$', 'hellothere\')) не должен работать, но print(re.search(r'\$', r'hellothere\')) должен работать с необработанной строкой ... потому что обратная косая черта - это просто обратная косая черта, но не часть escape-последовательности – overexchange 13 July 2018 в 18:33
  • 2
    прочитайте stackoverflow.com/questions/647769/… – i alarmed alien 13 July 2018 в 18:41
  • 3
    @ialarmedalien. В вашем ответном ответе говорится: В частности, необработанная строка не может заканчиваться одним обратным слэшем (поскольку обратная косая черта избегает следующего символа кавычки) . Это нарушает цель использования rawstrings ... потому что здесь говорит: Если вы хотите создать строку, содержащую обратную косую черту, и вы не хотите, чтобы Python пытался интерпретировать эти обратные косые черты как escape последовательности, вы можете создать необработанную строку. – overexchange 13 July 2018 в 18:49
  • 4
    из документов python : даже в исходном литерале кавычки могут быть экранированы с обратным слэшем, но обратная косая черта остается в результате; например, r "\" - допустимый строковый литерал, состоящий из двух символов: обратная косая черта и двойная кавычка; г & Quot; \ & Quot; не является допустимым строковым литералом (даже необработанная строка не может заканчиваться нечетным числом обратных косых черт). В частности, исходный литерал не может заканчиваться одним обратным слэшем (поскольку обратная косая черта избегает следующего символа кавычки). – i alarmed alien 13 July 2018 в 19:02
  • 5
    Хорошо, я просто добавил тот же контент в ответ и увидел комментарий сейчас. Спасибо, @ialarmedalien. – gaganso 13 July 2018 в 19:13
Другие вопросы по тегам:

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