Открыть текстовый файл в gedit

Ambrish Dhaka спросил: 13 июня 2018 в 11:21 в: python

Я пытаюсь использовать os.system для открытия текстового файла, как показано ниже.

def fileshow():
  cf = tb2.get().replace('\n', '')
  hn = tb6.get().replace('\n', '')
  fc = tb3.get().replace('\n', '')
  ff = cf + "/" + hn + "/" + fc
  os.system("gedit ff")

проблема в том, что gedit открывает файл с именем ff вместо того, чтобы принимать значение пути, которое хранится в ff. Помощь необходима заранее.

2 ответа

Chris Martin ответил: 13 июня 2018 в 03:19

У вас есть ff внутри двойных кавычек, поэтому он интерпретируется как буквенные символы ff, а не как ссылка на переменную с именем ff.

Вы можете создать команду следующим образом:

os.system("gedit " + ff)

Но это опасно; он может иметь неожиданные результаты, если значение ff содержит пробелы, символы новой строки, точки с запятой и т. д. Вместо этого рекомендуется использовать модуль subprocess, который позволяет передавать аргументы в списке вместо того, чтобы создавать строковое представление команды, которую вы запускаете.

subprocess.run(["gedit", ff])
Ambrish Dhaka ответил: 16 июня 2018 в 01:00
первое решение - лучшее, что нравится Мартину. Правильно.
Ambrish Dhaka ответил: 16 июня 2018 в 01:01
команда подпроцесса при написании дает ошибку как нерешенную ссылку. Не могу понять, что это значит и средство.
Ambrish Dhaka ответил: 16 июня 2018 в 01:15
Спасибо, что это хороший опыт обучения
l p ответил: 16 июня 2018 в 01:13
Импортируйте его с помощью этой строки вверху: импортный подпроцесс
l p ответил: 13 июня 2018 в 03:11

Я думаю, что вы забываете знак $, чтобы избежать env var.

попробуйте:

os.system("gedit $ff")
Ambrish Dhaka ответил: 16 июня 2018 в 12:54
Эти команды открывают только Untitled Document1. Значение ff все еще велико.
l p ответил: 16 июня 2018 в 01:10
Вы правы, у меня был неправильный язык. Я думал о bash и не видел тег python.

Дополнительное видео по вопросу: Открыть текстовый файл в gedit

Python Tutorial: File Objects - Reading and Writing to Files

Advanced Python Programming: Reading and Writing to Documents with docx

13.Linux для Начинающих - Редактирование Файлов: vim, pico, nano