Amazing-Python-Scripts

Форк
0
76 строк · 1.9 Кб
1
# Author:Priyadarshan2000 (Priyadarshan Ghosh)
2
# Simple Python IDE using Tkinter
3
# See the readme.md for how to Run this Project.
4

5
# importing the modules
6
from tkinter import *
7
from tkinter.filedialog import asksaveasfilename, askopenfilename
8
import subprocess
9

10
compiler = Tk()
11
compiler.title('Simple Python IDE')
12
file_path = ''
13

14

15
def set_file_path(path):
16
    global file_path
17
    file_path = path
18

19

20
def open_file():
21
    path = askopenfilename(filetypes=[('Python Files', '*.py')])
22
    with open(path, 'r') as file:
23
        code = file.read()
24
        editor.delete('1.0', END)
25
        editor.insert('1.0', code)
26
        set_file_path(path)
27

28

29
def save_as():
30
    if file_path == '':
31
        path = asksaveasfilename(filetypes=[('Python Files', '*.py')])
32
    else:
33
        path = file_path
34
    with open(path, 'w') as file:
35
        code = editor.get('1.0', END)
36
        file.write(code)
37
        set_file_path(path)
38

39

40
def run():
41
    if file_path == '':
42
        save_prompt = Toplevel()
43
        text = Label(save_prompt, text='Please save your code')
44
        text.pack()
45
        return
46
    command = f'python {file_path}'
47
    process = subprocess.Popen(
48
        command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
49
    output, error = process.communicate()
50
    code_output.insert('1.0', output)
51
    code_output.insert('1.0',  error)
52

53

54
menu_bar = Menu(compiler)
55

56
file_menu = Menu(menu_bar, tearoff=0)
57
file_menu.add_command(label='Open', command=open_file)
58
file_menu.add_command(label='Save', command=save_as)
59
file_menu.add_command(label='Save As', command=save_as)
60
file_menu.add_command(label='Exit', command=exit)
61
menu_bar.add_cascade(label='File', menu=file_menu)
62

63
run_bar = Menu(menu_bar, tearoff=0)
64
run_bar.add_command(label='Run', command=run)
65
menu_bar.add_cascade(label='Run', menu=run_bar)
66

67
compiler.config(menu=menu_bar)
68

69
editor = Text()
70
editor.pack()
71

72
code_output = Text(height=10)
73
code_output.pack()
74

75
# Starting the GUI
76
compiler.mainloop()
77

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.