2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Простая прога на Python, почему не удается найти файл?
Сообщение07.11.2020, 19:44 
Здравствуйте! Подскажите, пожалуйста, как разобрать или хотя бы как погуглить.
Я хочу открывать pdf файл с помощью питона на определенной странице (например, 12). Как это можно сделать?
Используется синтаксис Python
import subprocess
import os

path_to_pdf = os.path.abspath(r'C:\test.pdf')
# I am testing this on my Windows Install machine
path_to_acrobat = os.path.abspath(r'C:\Program Files(x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe')

# this will open your document on page 12
process = subprocess.Popen([path_to_acrobat, '/A', 'page=12', path_to_pdf], shell=False, stdout=subprocess.PIPE)
process.wait()
 


Traceback (most recent call last):
File "C:\Python\openPDF.py", line 21, in <module>
process = subprocess.Popen([path_to_acrobat, '/A', 'page=12', path_to_pdf], shell=False, stdout=subprocess.PIPE)
File "C:\Program Files\Python\lib\subprocess.py", line 947, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Program Files\Python\lib\subprocess.py", line 1416, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] Не удается найти указанный файл



А возможно ли через Python сделать так, чтобы при открытии pdf файла открывалась последняя открытая страница?
Можно ли сделать так, чтобы через Python открывалась последняя открытая страница pdf файла в браузере? (ну или хотя бы просто возможно сделать так, чтобы pdf файлы открывались в браузере, а запускать команду можно через Python, например).

 
 
 
 Re: Простая прога на Python, почему не удается найти файл?
Сообщение07.11.2020, 20:18 
Аватара пользователя
Пути проверьте внимательно. В Program Flies (x86) должен быть пробел, например.

 
 
 
 Re: Простая прога на Python, почему не удается найти файл?
Сообщение07.11.2020, 22:02 
Xaositect в сообщении #1491094 писал(а):
Пути проверьте внимательно. В Program Flies (x86) должен быть пробел, например.

Спасибо огромное! Точно. Между Flies и (x86) не хватает пробела. Не знаю - как так вышло, ведь я путь вручную не писал, только copy+paste. Теперь работает!

 
 
 
 Re: Простая прога на Python, почему не удается найти файл?
Сообщение07.11.2020, 22:57 
Можно использовать переменную окружения %PROGRAMFILES(X86)%. Или даже найти программу, ответственную за открытие файлов .pdf - что-то в духе https://stackoverflow.com/questions/3536634/getting-file-associations-using-windows-api

 
 
 
 Re: Простая прога на Python, почему не удается найти файл?
Сообщение08.11.2020, 01:25 
Спасибо. А можно ли сделать так, чтобы pdf файл с компьютера открывался через браузер? Например через хром. И если возможно, то хотелось бы сделать так, чтобы можно было указывать страницу, с которой открывается файл в браузере. То есть - реально ли это сделать или даже не стоит пытаться думать в эту сторону?

-- 08.11.2020, 01:47 --

(Вопрос возникает из-за того, что из хрома мне гораздо удобнее читать pdf)

 
 
 
 Re: Простая прога на Python, почему не удается найти файл?
Сообщение08.11.2020, 03:02 
Используется синтаксис Python
import subprocess
chrome_path = 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
p = subprocess.Popen([chrome_path, "Ссылка на файл на компе"])
returncode = p.wait()
 


Разобрался - как открыть в хроме. Но как открыть в хроме на конкретной странице (а еще лучше - на последней открытой странице) - не очевидно. Но это может быть очень полезным, когда читаешь электронные книги, мне кажется, что удобнее скроллить через интерфейс браузера, чем через pdf напрямую!

-- 08.11.2020, 03:17 --

Используется синтаксис Python
import subprocess
import os
import webbrowser
ichrome_path = 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
path_to_pdf = os.path.abspath(r'C:/test.pdf')
p = subprocess.Popen([chrome_path, r'/A', 'page=12',path_to_pdf], shell=False, stdout=subprocess.PIPE)
returncode = p.wait()
 


Вот так открывается хром, но в адресной строке пишется http://page%3D12/

 
 
 
 Re: Простая прога на Python, почему не удается найти файл?
Сообщение08.11.2020, 04:48 
kot-obormot в сообщении #1491139 писал(а):
Но как открыть в хроме на конкретной странице

Боюсь, нет метода, кроме как программно скроллить до нужной страницы.

 
 
 
 Re: Простая прога на Python, почему не удается найти файл?
Сообщение08.11.2020, 09:23 
Аватара пользователя
В хроме надо добавить к ссылке фрагмент #page=12

 
 
 
 Re: Простая прога на Python, почему не удается найти файл?
Сообщение08.11.2020, 11:34 
Xaositect в сообщении #1491153 писал(а):
В хроме надо добавить к ссылке фрагмент #page=12

Спасибо, теперь все получается! Все так просто, оказывается!

 
 
 [ Сообщений: 9 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group