С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313

При вставке текста в файл нарушается форматирование

06.09.2019, 02:15. Показов 3101. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Такая проблема: при вставке текста в документ убираются строки и все сливается в кашу(

Python
1
2
3
4
5
6
7
hand=autoit.control_get_text('[Class:#32770]', 'PokerStarsViewClass1')
 
f = open('file.txt', 'a', encoding="ANSI")
f.write(hand + '\n' + '\n')
f.close
 
#вместо encoding="ANSI" пробовал utf-8!!! Не помогло
Ожидание:
Кликните здесь для просмотра всего текста

PokerStars Hand #203946186573: Hold'em No Limit ($0.08/$0.16 USD) - 2019/09/05 2:20:38 CUST [2019/09/04 19:20:38 ET]

Table 'Amundsen' 6-max Seat #1 is the button

Seat 1: drum78 ($16.26 in chips)

Seat 2: PR0T0TYPE.88 ($16 in chips)

Seat 3: boddz ($34.35 in chips)

Seat 4: cincofuenf5 ($27.66 in chips)

Seat 5: Redillo16 ($16.36 in chips)

Seat 6: gallic8 ($14.99 in chips)

PR0T0TYPE.88: posts small blind $0.08

boddz: posts big blind $0.16

*** HOLE CARDS ***

cincofuenf5: folds

Redillo16: raises $0.32 to $0.48

gallic8: calls $0.48

drum78: calls $0.48

PR0T0TYPE.88: folds

boddz: raises $1.92 to $2.40

Redillo16: folds

gallic8: folds

drum78: calls $1.92

*** FLOP *** [2s Ts Jh]

boddz: bets $3.20

drum78: raises $10.66 to $13.86 and is all-in

boddz: calls $10.66

drum78:

*** TURN *** [2s Ts Jh] [4s]

*** RIVER *** [2s Ts Jh 4s] [Ac]

*** SHOW DOWN ***

boddz: shows [Kd Ks] (a pair of Kings)

drum78: shows [Qc Jd] (a pair of Jacks)

boddz collected $32.06 from pot

*** SUMMARY ***

Total pot $33.56 | Rake $1.50

Board [2s Ts Jh 4s Ac]

Seat 1: drum78 (button) showed [Qc Jd] and lost with a pair of Jacks

Seat 2: PR0T0TYPE.88 (small blind) folded before Flop

Seat 3: boddz (big blind) showed [Kd Ks] and won ($32.06) with a pair of Kings

Seat 4: cincofuenf5 folded before Flop (didn't bet)

Seat 5: Redillo16 folded before Flop

Seat 6: gallic8 folded before Flop



Реальность:
Кликните здесь для просмотра всего текста

PokerStars Hand #203946186573: Hold'em No Limit ($0.08/$0.16 USD) - 2019/09/05 2:20:38 CUST [2019/09/04 19:20:38 ET]Table 'Amundsen' 6-max Seat #1 is the buttonSeat 1: drum78 ($16.26 in chips) Seat 2: PR0T0TYPE.88 ($16 in chips) Seat 3: boddz ($34.35 in chips) Seat 4: cincofuenf5 ($27.66 in chips) Seat 5: Redillo16 ($16.36 in chips) Seat 6: gallic8 ($14.99 in chips) PR0T0TYPE.88: posts small blind $0.08boddz: posts big blind $0.16*** HOLE CARDS ***cincofuenf5: folds Redillo16: raises $0.32 to $0.48gallic8: calls $0.48drum78: calls $0.48PR0T0TYPE.88: folds boddz: raises $1.92 to $2.40Redillo16: folds gallic8: folds drum78: calls $1.92*** FLOP *** [2s Ts Jh]boddz: bets $3.20drum78: raises $10.66 to $13.86 and is all-inboddz: calls $10.66drum78: *** TURN *** [2s Ts Jh] [4s]*** RIVER *** [2s Ts Jh 4s] [Ac]*** SHOW DOWN ***boddz: shows [Kd Ks] (a pair of Kings)drum78: shows [Qc Jd] (a pair of Jacks)boddz collected $32.06 from pot*** SUMMARY ***Total pot $33.56 | Rake $1.50 Board [2s Ts Jh 4s Ac]Seat 1: drum78 (button) showed [Qc Jd] and lost with a pair of JacksSeat 2: PR0T0TYPE.88 (small blind) folded before FlopSeat 3: boddz (big blind) showed [Kd Ks] and won ($32.06) with a pair of KingsSeat 4: cincofuenf5 folded before Flop (didn't bet)Seat 5: Redillo16 folded before FlopSeat 6: gallic8 folded before Flop
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.09.2019, 02:15
Ответы с готовыми решениями:

Нежелательное форматирование текста при вставке
Доброго времени суток, не могли бы вы подсказать как в эксель отключить автоматическое определение типа в ячейках, так чтобы эксель больше...

Форматирование при вставке текста из Exel в Word
Перелопатил все 4 темы, но так и не нашел решения, которое исправляет проблему форматирования и знаков абзацев при вставке из Exel данных с...

Как при вставке текста в Edit сохранить форматирование?
Как при вставке текста в Edit сохранить форматирование вставляемого текста, т.е. оставить такое же выравнивание, курсив, шрифт?

14
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
06.09.2019, 06:19
Onet1me, хм, а откуда этот файл, ты его сам создавал? похоже на одну проблему, когда например файл созданный на Линукс перенесен на винду. Кодировка файла известна? Ты на какой ОС пробуешь? питон 3?
Можешь сам файл сюда прицепить (не содержимое).?
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
06.09.2019, 08:01
Попробуйте "\n" заменить на "\n\r"
0
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
06.09.2019, 12:46  [ТС]
Давай по порядку: я на 10 винде. Работаю с питон 3.6; сам файл прицепить не смогу, т.к это стороннее приложение, а именно есть такая покерная площадка Pokerstars, кодировка файла мне не известна. По сути должен был происходить просто копипаст)

Первая картинка, как выглядит программа, вторая то что о ней говорит вин инфо
Миниатюры
При вставке текста в файл нарушается форматирование   При вставке текста в файл нарушается форматирование  
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
06.09.2019, 12:51
Цитата Сообщение от Onet1me Посмотреть сообщение
сам файл прицепить не смогу,
Цитата Сообщение от Onet1me Посмотреть сообщение
при вставке текста в документ
Цитата Сообщение от Onet1me Посмотреть сообщение
open('file.txt'
но вот же он, какой то файл, в который ты добавляешь строки...

эээ, ты же не думаешь таким образом стать звездой покера и хакнуть программу?
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
06.09.2019, 13:36
Onet1me, print(hand) выводит то, что вы ожидаете?
0
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
06.09.2019, 17:29  [ТС]
Файл в который я добавляю обычный блокнот. Нужно его скинуть?

Хакнуть программу не собираюсь, а вот намайнить руки нужно бы))

Добавлено через 1 минуту
Цитата Сообщение от Welemir1 Посмотреть сообщение
но вот же он, какой то файл, в который ты добавляешь строки...
эээ, ты же не думаешь таким образом стать звездой покера и хакнуть программу?
Файл - это обычный блокнот. Хакнуть ничего не собираюсь , а вот намайнить рук это другое дело)

Добавлено через 1 минуту
Цитата Сообщение от ioprst Посмотреть сообщение
Onet1me, print(hand) выводит то, что вы ожидаете?
Да, он и в блокнот как бы все правильно переписывает, но программа которая должна это считывать (Hand2note) не воспринимала, и я попробовал открыть в других текстовых редакторах этот блокнот, и оказалась что везде просто склеиваются строки(
0
5025 / 1054 / 147
Регистрация: 29.01.2013
Сообщений: 6,189
07.09.2019, 00:08
Onet1me, а вы пробовали 3й коммент? За авторством уважаемого DmFat?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
07.09.2019, 01:55
Цитата Сообщение от Onet1me Посмотреть сообщение
при вставке текста в документ убираются строки и все сливается в кашу
Потому что ваш текст изначально не содержит правильных переносов строк.
Проверяется эмпирическим путем.
Открываем любой текстовый документ содержащий несколько строк в AkelPad (у вас же есть акелпад?)
Python
1
2
3
4
text = autoit.control_get_text(
    '[CLASS:AkelPad4]',
    '[CLASS:AkelEditW; INSTANCE:1]',buf_size=10000)
print(len(text.split('\r\n')))
Если число не 1, значит текст извлечен и благополучно "разбит" по виндовым символам перевода строки (их всегда два - "\r\n").
Теперь тоже самое делаете с вашим текстом из контрола клиента покерстар.
Какой результат? Вангую: 1. Это значит переносов закодированных спецсимволами "\r\n" там нет.
(Библиотека autoit всегда извлекает текст с переносами как "\r\n".)
Возможно, они закодированы только как как "\r" (для MacOS) или только как "\n" (для Linux) ... но судя по куску текста, который вы скопировали сюда - там вообще ничего нет.
(К акелпаду есть плагин "SpecialChar", который позволяет увидеть какие именно спецсимволы используются в тексте - скачайте и посмотрите что у вас там реально есть.)

hand + '\n' + '\n'
Вот это-то зачем? Оно же только в конец текст добавится.
0
 Аватар для Wi0M
395 / 123 / 48
Регистрация: 26.10.2013
Сообщений: 734
07.09.2019, 23:58
попробуй открыть файл из SublimeText. только перед этим убери encoding="ANSI" из open
0
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
08.09.2019, 03:44  [ТС]
Акелпад показывает, да и принт тоже, что все же он разбивает на строки, только почему то не \r\n, а r\r\n. С этим можно что-нить сделать.?
Миниатюры
При вставке текста в файл нарушается форматирование  
0
5025 / 1054 / 147
Регистрация: 29.01.2013
Сообщений: 6,189
08.09.2019, 09:47
Onet1me, отладчиком посмотрите.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
08.09.2019, 12:13
Лучший ответ Сообщение было отмечено Onet1me как решение

Решение

Цитата Сообщение от Onet1me Посмотреть сообщение
С этим можно что-нить сделать.?
Попробуйте перед записью в файл сделать замену этих символов на \n через регулярное выражение.
Здесь я указываю для замены двойной \n\n, так как вам, судя по всему, требуется дополнительная пустая строка между строками.
Python
1
2
3
4
5
6
7
8
9
10
>>> s = "hello\r\r\nworld\r\r\nhello"
>>> import re
>>> newstr = re.sub(r"\r*\n","\n\n",s)
>>> print(newstr)
hello
 
world
 
hello
>>>
При записи в файл Python уже самостоятельно перетранслирует каждый \n в \r\n.
1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
08.09.2019, 12:28
Да, кстати, я понял в чем проблема. В вашем тексте, который возвращает control_get_text, текст возвращается с переводами строк в виде \r\n (то есть сразу виндовый вариант). Я полагал, что Python ничего не будет делать с таким вариантом, так как он совпадает с тем, что используется на windows. Но оказывается Python (на windows) все равно ретранслирует каждый отдельный \n в дополнительные \r\n и в итоге мы получаем неверный вариант в файле.
0
60 / 44 / 18
Регистрация: 05.03.2019
Сообщений: 313
08.09.2019, 14:20  [ТС]
Спасибо за помощь, у меня все получилось!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.09.2019, 14:20
Помогаю со студенческими работами здесь

Как при вставке частично сохранить форматирование текста?
Как при вставке отформатированного текста (например скопированного из Word) сохранить верхние и нижние индексы, подчёркивания, курсив и...

Форматирование текста при выводе в файл
При помощи commondialog открываю некий файл Дальше пишу в него командой print Как применить в данном случае оператор font? Я так понял...

Автоматическое форматирование при вставке
Наверное тупой вопрос.... но я не нашел есть текст типо "логин:пароль:мыло" когда вставляю в ворд 2016 нужно что бы формат был...

Склеивание пробелов при вставке текста в ноду при использовании replaceWith
Текст для перевода. Здравствуйте. Собственно сабж. У меня такая ситуация: организовываю подсветку слов в тексте. На входных параметрах...

Обрезание текста при вставке
нужно вносить большой текстовой блок (MEMO) в поле. название - текст. название выбирается из раскрывающегося списка и заносится в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru