Найти - Пользователи
Полная версия: Windows (XP): Синтаксическая ошибка в имени...
Начало » Python для новичков » Windows (XP): Синтаксическая ошибка в имени...
1 2
4kpt
Если расширение файла совпадает с принятым в системе для открытия такого типа файлов, то можно
os.startfile(path_to_file)
sergeek
4kpt
никак, я просто предположил
vanvanov
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)!
vanvanov
4kpt
os.startfile(path_to_file)
Спасибо. Пока остановлюсь на варианте
#!/usr/bin/python3
from main import *
file="C:\WINDOWS\WindowsUpdate.log"
exist(file)
os.startfile(file)
py.user.next
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))
по идее, путь к программе тоже надо в кавычки взять, так как там тоже могут пробелы быть, но не проверял (надо перезагружаться)
reclosedev
vanvanov
subprocess.call выдает
reclosedev
…использовать subprocess.call(), тогда кавычки не понадобятся.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB