LINUX.ORG.RU

Ищу программиста для написания мини программы на Python3.6 (linux-ubuntu)

 , ,


0

2

Скажу сразу, что в python я полный ноль. Нужно написать простую программу. Программа для монтирования и размонтирования usb. Как вставить эти команды в кнопку, что бы они работали? В форуме находил как вызвать команду линукс через питон но не понял как ее вставить в кнопку.

import subprocess subprocess.call([«sudo», «apt», «update»]) (пример вызова команды на линуксе)

sudo chmod 0700 /media - (1 кнопка on)

sudo chmod 0755 /media - (2 кнопка off)

Сам код:

from tkinter import *
def useful_function():
    print("sudo chmod 0700 /media")
root = Tk()
Button(root, text="on", command=useful_function).pack()
def useful_function():
    print("sudo chmod 0755 /media")
root = Tk()
Button(root, text="off", command=useful_function).pack()
root.mainloop()

команды выводиться в терминал, но как сообщение, команда не выполняется,как это исправить? и как можно добавить

import subprocess
subprocess.call(["sudo chmod 0700 /media"])
(пример вызова команды на линуксе)


Пожалуй, я даже не хочу знать, какова конечная цель и как ты пришёл к этой задаче.

import subprocess
from tkinter import *

def button_on():
    subprocess.call(["sudo", "chmod", "0700", "/media"])

def button_off():
    subprocess.call(["sudo", "chmod", "0755", "/media"])

root = Tk()
Button(root, text="on", command=button_on).pack()
Button(root, text="off", command=button_off).pack()
root.mainloop()

Ещё тебе, скорее всего, тебе стоит заменить sudo на pkexec.

gasinvein ★★★
()
Последнее исправление: gasinvein (всего исправлений: 1)
Ответ на: комментарий от gasinvein

Ты самый лучший человек в мире)

kinza
() автор топика
Ответ на: комментарий от gasinvein

как перейти в директорию?

если пишу так, то он не хочет переходить, выполняет только /dev.

 def button_USB():
    subprocess.call(["ls", "-l", "/dev", "/disk", "/by-id", "/usb*"])

kinza
() автор топика
Ответ на: комментарий от kinza

Во-первых, ты зачем путь на куски-то разделил? Путь же один, вот и передавай его как один аргумент.

Во-вторых, подстановка в «*» здесь не будет работать, либо добавь shell=True (так делать плохо), либо используй find вместо ls, либо вообще перечисляй средствами питона без внешних утилит.

gasinvein ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.