Чтобы выполнить часть кода в новом окне консоли и обеспечить кроссплатформенное решение, можно использовать модуль `subprocess`, который предоставляет более гибкие возможности для запуска новых процессов по сравнению с `os.system`. Ниже приведен способ сделать это, который будет работать и в Windows, и в Linux.
### Пример кода
```python
import subprocess
import sys
import os
def run_in_new_console(script, *args):
if os.name == 'nt':
# Для Windows
subprocess.Popen(['start', 'cmd', '/k', 'python', script] + list(args), shell=True)
else:
# Для Linux
subprocess.Popen(['x-terminal-emulator', '-e', 'python', script] + list(args))
def main():
print("Основной код выполняется...")
# Запускаем отдельный процесс
run_in_new_console('main.py', 'arg1', 'arg2')
# Основной код продолжает исполняться
print("Основной код не завершен!")
if __name__ == "__main__":
main()
```
### Как это работает:
1. **Функция `run_in_new_console`**:
- Проверяет, работает ли код в Windows или Linux с помощью `os.name`.
- Для Windows: использует `subprocess.Popen` для запуска нового командного окна и выполнения Python-скрипта с параметрами.
- Для Linux: использует `x-terminal-emulator`, который запускает «терминал» и выполняет указанный Python-скрипт.
2. **Основная функция `main`**:
- Здесь выполняется основной код.
- Вызывается функция `run_in_new_console`, передавая имя другого скрипта и его аргументы.
- Основной код продолжает выполняться, не дожидаясь завершения запущенного процесса.
### Замечания:
- В Linux может потребоваться заменить `'x-terminal-emulator'` на конкретный терминал, например, `'gnome-terminal'`, `'xterm'` или другой, в зависимости от дистрибутива и установки.
- Убедитесь, что Python доступен из терминала (то есть путь к интерпретатору добавлен в переменные окружения).
- Важно помнить, что такой подход будет открывать новые окна консоли, что может не всегда быть желаемым поведением, особенно если скрипт запускается в среде с графическим интерфейсом.