Уведомления

Группа в Telegram: @pythonsu

#1 Март 31, 2013 20:50:50

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

Windows (XP): Синтаксическая ошибка в имени...

Если расширение файла совпадает с принятым в системе для открытия такого типа файлов, то можно

os.startfile(path_to_file)



Офлайн

#2 Март 31, 2013 21:05:52

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Windows (XP): Синтаксическая ошибка в имени...

4kpt
никак, я просто предположил

Офлайн

#3 Март 31, 2013 21:54:06

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Windows (XP): Синтаксическая ошибка в имени...

reclosedev
Имя с пробелами передается в кавычках, чтобы не писать \\ вместо \ можно использовать сырые строки (r“”)

file = r'“C:\Documents and Settings\limited\text.old”'

Но в данном случае правильнее использовать subprocess.call(), тогда кавычки не понадобятся.
#!/usr/bin/python3
from main import *
import subprocess
app=r'"C:\WINDOWS\notepad.exe"'
file=r'"C:\WINDOWS\WindowsUpdate.log"'
subprocess.call([app,file])
#os.startfile(file)
subprocess.call выдает
C:\Documents and Settings\limited>tst.py
Traceback (most recent call last):
File "C:\Python33\lib\subprocess.py", line 1090, in _execute_child
startupinfo)
OSError: [WinError 123] Синтаксическая ошибка в имени файла, имени папки или мет
ке тома

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Documents and Settings\limited\tst.py", line 11, in <module>
subprocess.call([app,file])
File "C:\Python33\lib\subprocess.py", line 521, in call
with Popen(*popenargs, **kwargs) as p:
File "C:\Python33\lib\subprocess.py", line 818, in __init__
restore_signals, start_new_session)
File "C:\Python33\lib\subprocess.py", line 1096, in _execute_child
raise WindowsError(*e.args)
OSError: [WinError 123] Синтаксическая ошибка в имени файла, имени папки или мет
ке тома
А os.startfile(file), как ни странно, работает (хотя теперь файл не видит функция exist)!

Офлайн

#4 Март 31, 2013 21:55:05

vanvanov
Зарегистрирован: 2013-03-31
Сообщения: 252
Репутация: +  4  -
Профиль   Отправить e-mail  

Windows (XP): Синтаксическая ошибка в имени...

4kpt
os.startfile(path_to_file)
Спасибо. Пока остановлюсь на варианте
#!/usr/bin/python3
from main import *
file="C:\WINDOWS\WindowsUpdate.log"
exist(file)
os.startfile(file)

Отредактировано vanvanov (Март 31, 2013 21:55:35)

Офлайн

#5 Апрель 1, 2013 02:14:31

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Windows (XP): Синтаксическая ошибка в имени...

vanvanov
Почему не работает следующий код?
1) потому что нет пробела между notepad.exe и C:\
2) путь к файлу содержит пробелы (нужно взять в кавычки)
cmd="C:\\WINDOWS\\notepad.exe"
file="C:\\Documents and Settings\\limited\\text.old"
os.system('{0} "{1}"'.format(cmd, file))
по идее, путь к программе тоже надо в кавычки взять, так как там тоже могут пробелы быть, но не проверял (надо перезагружаться)



Отредактировано py.user.next (Апрель 1, 2013 02:19:24)

Офлайн

#6 Апрель 1, 2013 07:08:37

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Windows (XP): Синтаксическая ошибка в имени...

vanvanov
subprocess.call выдает
reclosedev
…использовать subprocess.call(), тогда кавычки не понадобятся.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version