Нужно было выполнить рутинную работу по конвертации pdf файлов и последующео парсинга текстовых строк в таблицы. Мне не хотелось плодить временные файлы для каждого этапа конвертации, потому я сначала посмотрел видео и с большой неохотой прочитал таки малопонятную документацию..., зато потом с удовольствием прочитал все
17.1. subprocess — Subprocess management
Subprocess and Shell Commands in Python
The ever useful and neat subprocess module
subprocess – Work with additional processes
SUBPROCESS MODULE
Working with Python subprocessWorking with Python subprocess - Shells, Processes, Streams, Pipes, Redirects and More
psutil
Стандартные потоки вывода (stdout) Windows или как перенаправить вывод консоли (cmd) в файл
Ниже просто черновые записи, сделанные при изучении subprocess. Лучше использовать поиск по странице, а не искать то, что надо.
import os
p =os.system(r'dir "C:\Program Files\Xpdf\bin64"')
p
os.listdir(r'C:\Program Files\Xpdf\bin64')
d=!dir "C:\Program Files\Xpdf\bin64"
d
Из моего поста про subprocess Пример использования Python subprocess для выполнения команд консоли Windows¶
!chcp 65001
import subprocess
import re
import shlex
import subprocess
import re
varCommand = raw_input("ping")
myProcess = subprocess.Popen(
[varCommand],
stdout = subprocess.PIPE,
stderr = subprocess.PIPE)
out, error = myProcess.communicate()
print out
On Windows with shell=True, the COMSPEC environment variable specifies the default shell. The only time you need to specify shell=True on Windows is when the command you wish to execute is built into the shell (e.g. dir or copy). You do not need shell=True to run a batch file or console-based executable.
subprocess.call(["dir", r"C:\Program Files\Xpdf\bin64"], shell=True)
subprocess.check_output(["dir", r"C:\Program Files\Xpdf\bin64"], shell=True)
subprocess.check_output(["dir", "/W"], shell=True)
subprocess.check_output(["echo", "Hello World!"], shell=True)
subprocess.check_output('echo "Hello World!"', shell=True)
subprocess.check_output('echo Hello World!', shell=True)
subprocess.check_output('dir /W ', shell=True)
goga= "wooow"
filename = input("What file would you like to display?\n")
Note shlex.split() can be useful when determining the correct tokenization for args, especially in complex cases:
>>> import shlex, subprocess
>>> command_line = raw_input()
/bin/vikings -input eggs.txt -output "spam spam.txt" -cmd "echo '$MONEY'"
>>> args = shlex.split(command_line)
>>> print args
['/bin/vikings', '-input', 'eggs.txt', '-output', 'spam spam.txt', '-cmd', "echo '$MONEY'"]
>>> p = subprocess.Popen(args) # Success!
subprocess.STD_INPUT_HANDLE
On windows, if you pass a list for args, it will be turned into a string using the same rules as the MS C runtime. See the doc-string for subprocess.list2cmdline for more on this. Whereas on unix-like systems, even if you pass a string, its turned into a list of one item :).
help(subprocess.list2cmdline)
Посты чуть ниже также могут вас заинтересовать
Комментариев нет:
Отправить комментарий