Почему длинная строка, напечатанная Python в gitbash или cygwin, становится разорванной (несколько) строк при копированиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему длинная строка, напечатанная Python в gitbash или cygwin, становится разорванной (несколько) строк при копировани

Сообщение Anonymous »

У меня есть программа на Python, которая печатает несколько примеров, чтобы пользователи могли их скопировать и вставить для запуска. Все примеры представляют собой длинные строки.
Я заметил, что когда Python печатает длинную строку в gitbash, а затем я копирую и вставляю ее в gitbash, длинная строка превращается в несколько коротких строк. p>
Ниже приведен тестовый скрипт Python: test_long_line.py

Код: Выделить всё

#!/usr/bin/env python

line = "echo cmd"
for i in range(0, 30):
line = f"{line} arg{i} "
print(line)
Когда я запускаю его,

Код: Выделить всё

$ test_long_line.py
echo cmd arg0  arg1  arg2  arg3  arg4  arg5  arg6  arg7  arg8  arg9  arg10  arg11  arg12  arg13  arg14  arg15  arg16  arg17  arg18  arg19  arg20  arg21  arg22  arg23  arg24  arg25  arg26  arg27  arg28
arg29
Распечатка выглядит как одна строка, обернутая вокруг, но когда я копирую и вставляю в тот же gitbash, gitbash видит ее как прерывистую линию

Код: Выделить всё

$ echo cmd arg0  arg1  arg2  arg3  arg4  arg5  arg6  arg7  arg8  arg9  arg10  arg11  arg12  arg13  arg
14  arg15  arg16  arg17  arg18  arg19  arg20  arg21  arg22  arg23  arg24  arg25  arg26  arg27  arg28
arg29
cmd arg0 arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10 arg11 arg12 arg13 arg
bash: 14: command not found
bash: arg29: command not found
Я провел еще несколько экспериментов и пришел к выводу:
  • Та же проблема возникает, когда Python печатает в Cygwin. >
  • Однако в Windows Batch (cmd.exe) этой проблемы нет.
  • При печати Perl такой проблемы нет. (см. тестовый сценарий Perl ниже)
  • Эхо Bash не имеет этой проблемы. (см. тестовый сценарий bash ниже)
  • Терминал Linux (WSL2) не имеет этой проблемы.
Мой тестовая среда:
  • Windows 10 с последним исправлением
  • Python 3.12.4
    < li>Gitbash Mintty 3.7.1
  • Cygwin Mintty 3.7.4
Тестовый скрипт Perl, print_long_line.pl, который не поддерживает есть проблема

Код: Выделить всё

#!/usr/bin/env perl

use strict;

my $line = "echo cmd ";
for (my $i = 0; $i < 30; $i++) {
$line .= "arg$i ";
}
Тестовый скрипт Bash, test_long_line.bash, в котором нет проблем

Код: Выделить всё

#!/bin/bash

line="echo cmd"
for i in {0..29}; do
line+=" arg$i"
done
echo "$line"
Я использую Python уже много лет. Только сейчас я это заметил. Не знаю, почему Python делает это.
Любая информация приветствуется.

Подробнее здесь: https://stackoverflow.com/questions/793 ... n-multiple
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»