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

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

06.09.2019, 02:15. Показов 3175. Ответов 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
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
06.09.2019, 06:19
Onet1me, хм, а откуда этот файл, ты его сам создавал? похоже на одну проблему, когда например файл созданный на Линукс перенесен на винду. Кодировка файла известна? Ты на какой ОС пробуешь? питон 3?
Можешь сам файл сюда прицепить (не содержимое).?
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 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
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 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
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,243
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
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,243
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
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru