Using os.("start ...) with variable file name. python - python

The code:
doc.save("AttendanceReportFor"+EventNameSTR+".docx")
os.("start AttendanceReportFor"+EventNameSTR+".docx")
Where:
EventNameSTR=("Juilie")
Results in
SyntaxError: invalid syntax
In the line
os.("start AttendanceReportFor"+EventNameSTR+".docx")
Is it possible for the os() to take variables in its command statement?
The expected result is opening the word document in Microsoft Word.

your problem is that you are using : os.("start AttendanceReportFor"+EventNameSTR+".docx") which is, as the error says: a syntax error, since you can't use os.(....) - you should use :
os.system(command) or subprocess.Popen(args....)

Related

subprocess.call path problem , how to fix?

my subprocess.call problem is that my shortcut target is with extra INI file which is LIV2.INI and my exe file should run whit it . and my target link in shortcut looks like this
"C:\Program Files (x86)\AMO\EXE\PROGRAM LIVE 2.exe" LIV2.INI
i tried this
subprocess.call('"C:\Users\admin\Desktop\PROGRAM LIVE 2.exe" LIV2.INI')
and i tried this
subprocess.call('C:\Users\admin\Desktop\PROGRAM LIVE 2.exe LIV2.INI')
and i still get error that the ini file missing ? How can i fix this :)
THank you in advance
ERROR : INI FILE Missing or Wrong Name
Please also edit your question to actually include the error since you will get a syntax error, not an error that the ini file is missing.
You have two issues here, first you have a syntax error since "\Us" is not a valid string in python. \u marks the start of a Unicode escape sequence and the character S is not a valid unicode escape key. You can fix this by using double \\ to escape the \ character and tell python you want your string to include a \ and not use it as the start of a escape sequence.
Secondly, subprocess.call excpects a list, not a string (unless you set shell=True; but don't do that, since it means you have to manually escape things which you have already discovered is hard). The first element of the list
is the executable to run and the rest are command line arguments. For example if you wanted to run pythoneand print "hello world" you would type:
subprocess.call(['python', '-c', 'print ("hello world")'])
Notice the missing quotes around the python string? You don't need those since the command line arguments are passed in raw and no shell will attempt to split them if you don't include quotes.
Putting it all together creates something like this:
subprocess.call(['C:\\Users\\admin\\Desktop\\PROGRAM LIVE 2.exe', 'LIV2.INI'])
Notice the double backslashes and how each command line argument is its own list element.

What is this error message, and how do I resolve it?

I'm taking google's python tutorial and may have fat fingered a few keys, causing an error. I don't recognize the issue here, and the ctrl+click links it allows me to follow take me to line 1 of the file I'm writing in and to python.exe.
It looks like there's an extra character somewhere in a file path? There are no syntax errors in the code itself as the debugger runs through it just fine.
I'm using Visual Studio Code
None of the code I've written (with my knowledge) is causing this error.
This is the error message I'm getting.
SyntaxError: invalid syntax
>>> & C:/Users/mcgilm1/AppData/Local/Programs/Python/Python37-32/python.exe c:/Users/mcgilm1/Documents/google-python-exercises/basic/string2.py
File "<stdin>", line 1
& C:/Users/mcgilm1/AppData/Local/Programs/Python/Python37-32/python.exe c:/Users/mcgilm1/Documents/google-python-exercises/basic/string2.py
^
Including your code could help us, here is a list of things to check that I found on the web: Debugging
Make sure you are not using a Python keyword for a variable name.
Check that you have a colon at the end of the header of every compound statement, including for, while, if, and def statements.
Check that indentation is consistent. You may indent with either spaces or tabs but it’s best not to mix them. Each level should be nested the same amount.
Make sure that any strings in the code have matching quotation marks.
If you have multiline strings with triple quotes (single or double), make sure you have terminated the string properly. An unterminated string may cause an invalid token error at the end of your program, or it may treat the following part of the program as a string until it comes to the next string. In the second case, it might not produce an error message at all!
An unclosed bracket – (, {, or [ – makes Python continue with the next line as part of the current statement. Generally, an error occurs almost immediately in the next line.
Check for the classic = instead of == inside a conditional.

Python print in terminal returning 'invalid syntax'

Im using the terminal on my mac to run some python and when i try to print a string i get an invalid syntax error.
Michaels-MBP:~ mike$ python text.py
File "text.py", line 2
print(‘hi’)
^
SyntaxError: invalid syntax
I've tried it with single quotes and with and without parentheses but i keep getting that error, what is wrong.
Should be:
print('hi')
You have proper British quotes ‘foo’. Those are the right symbols to use when writing human-readable texts, but Python wants actual single quotes '.
Your editor probably has some kind of smart-quotes feature enabled, it is wise to turn this off when writing code (e.g. configure your editor to detect extensions like .py).

Missleading Python Error Message

If I have a file python_error_msg.py
x = [e for e in range(x)
x+=1
And I run it
$ python3 python_error_msg.py
The missing bracket gives the following error:
File "python_error_msg.py", line 2
x+=1
^
SyntaxError: invalid syntax
Why does it happen this way? My error was in forgetting the ] on the list comprehension. Is this something that could be made better, or is it a deeper matter of how Python syntax works?
Also, where can I look in the
codebase
to get an idea of how error reporting works in Python?
The problem is the error isn't official until that second line. Python keeps reading while inside parentheses (or brackets, braces, etc)
What if your code were this?
x = [e for e in range(x)
]
No error.
That said, in these cases I wish SyntaxError would say:
SyntaxError: invalid syntax on line 2 of parenthetical
(After all, even the most experienced programmers forget to close parentheses sometimes

appending two variables in os.path.isdir

I am trying to append two variables BUILD_ROOT_DIR and W_ROOT and check if this directory exists ,if not raise a flag...running into following syntax error while appending..what is wrong here?
if(os.path.isdir(BUILD_ROOT_DIR + W_ROOT))
raise
if(os.path.isdir(BUILD_ROOT_DIR + W_ROOT))
^
SyntaxError: invalid syntax
You need a colon to end the if statement (the parentheses are not required):
if os.path.isdir(BUILD_ROOT_DIR + W_ROOT):
raise
God gave you ':' for ending an if clause and he also told you: keep this Python tutorial under your pillow and read it all night before sleeping.
http://docs.python.org/2/tutorial/controlflow.html#if-statements

Categories

Resources