Я пишу скрипт для очистки рабочего стола, перемещая файлы в зависимости от типа файла. Первый шаг, казалось бы, ls -1 /Users/user/Desktop
(у меня Mac OSX). Итак, используя Python, как мне запустить команду, а затем записать вывод в файл в определенном каталоге? Поскольку это будет недокументировано, и я буду единственным пользователем, я не возражаю (предпочитаю?), если он использует os.system()
.
запись вывода командной строки в файл
Ответы (3)
Вы можете перенаправить стандартный вывод в любой файл, используя >
в команде.
$ ls /Users/user/Desktop > out.txt
Используя питон,
os.system('ls /Users/user/Desktop > out.txt')
Однако, если вы используете python, вместо использования команды ls
вы можете использовать os.listdir
для вывода списка всех файлов в каталоге.
path = '/Users/user/Desktop'
files = os.listdir(path)
print files
После просмотра документации Python для запуска команды оболочки и получения вывода вы можете использовать модуль subprocess. методом check_output
.
После этого вы можете просто записать этот вывод в файл с помощью стандартных функций ввода-вывода Python: Файл ввода-вывода в Python.
Чтобы открыть файл, вы можете использовать команду f = open(/Path/To/File)
. Синтаксис — f = open('/Path/To/File', 'type')
, где «тип» — это r для чтения, w для записи и a для добавления. Для этого используются команды f.read()
и f.write('content_to_write')
. Чтобы получить вывод из команды командной строки, вы должны использовать popen и subprocess вместо os.system()
. os.system() не возвращает значение. Вы можете прочитать больше на здесь.
for
,if
,file
будет достаточно. - person Shiplu Mokaddim   schedule 25.01.2012ls
. На самом деле, даже если вы создаете сценарий оболочки, вы должны использовать для этогоfind
. - person sorpigal   schedule 25.01.2012