I'm using Python to process some plain text into LaTeX, so I need to be able to write things like \begin{enumerate}
or \newcommand
to a file. When Python writes this to a file, though, it interprets \b
and \n
as special characters.
How do I get Python to write \newcommand
to a file, instead of writing ewcommand
on a
new line?
The code is something like this ...
with open[fileout,'w',encoding='utf-8'] as fout:
fout.write["\begin{enumerate}[1.]\n"]
Python 3, Mac OS 10.5 PPC
jensgram
30.4k6 gold badges80 silver badges96 bronze badges
asked Nov 22, 2010 at 13:09
1
One solution is to escape the escape character [\
]. This will result in a literal backslash before the b
character
instead of escaping b
:
with open[fileout,'w',encoding='utf-8'] as fout:
fout.write["\\begin{enumerate}[1.]\n"]
This will be written to the file as
\begin{enumerate}[1.]
[I assume that the \n
at the end is an intentional newline. If not, use double-escaping here as well: \\n
.]
answered Nov 22, 2010 at 13:12
jensgramjensgram
30.4k6 gold badges80 silver badges96 bronze badges
1
You just need to double the backslash: \\n
, \\b
. This will escape the backslash. You can also put the r
prefix in front of your
string: r'\begin'
. As detailed here, this will prevent substitutions.
answered Nov 22, 2010 at 13:12
asthasrasthasr
8,9541 gold badge28 silver badges40 bronze badges
0
You can also use raw strings:
with open[fileout,'w',encoding='utf-8'] as fout:
fout.write[r"\begin{enumerate}[1.]\n"]
Note the 'r' before \begin
answered Nov 22, 2010 at 13:14
Marco MarianiMarco Mariani
13.4k6 gold badges38 silver badges55 bronze badges
2
The characters which have some unique functionality, such characters are called special characters.
List of Python special/escape characters:
- \n - Newline
- \t- Horizontal tab
- \r- Carriage return
- \b- Backspace
- \f- Form feed
- \'- Single Quote
- \"- double quote
- \\-Backslash
- \v -vertical tab
- \N - N is the number for Unicode character
- \NNN - NNN is digits for Octal value
- \xNN - NN is a hex value; \x is used to denote following is a hex value.
- \a - bell sound, actually default chime
>>> print["chercher\ntech"]
chercher
tech
>>> print["chercher\ttech"]
chercher tech
>>> print["This is\" symbol"]
This is" symbol
>>> print['This is \' symbol']
This is ' symbol
>>> print["This is\\ symbol"]
This is\ symbol
>>> print["Chercher\rTech"]
Techcher
>>> print["CherCher\bTech"]
CherCheTech
>>> print["CherCher\fTech"]
CherCher♀Tech
>>> print["\110\151"]
Hi
>>> print["\x48\x69"]
Hi
>>>
How to check if a string contains any special characters
Import the re
to match the string using regular expression.
The search function matches each character present inside the test_string string with the special characters present in the regular expression.
If there is a match it returns the character that matched otherwise it returns None. Based on the result, structure your logic.
import re
string_check= re.compile['[@_!#$%^&*[]?/\|}{~:]']
test_string = "[email protected]"
if[string_check.search[test_string] == None]:
print["Contains NO Special Characters."]
else:
print["Contains Special Characters."]
print[string_check.search[test_string]] #print the special chars
Output
Contains Special Characters.
You can check whether a string
starts with a special character.test_string = "[email protected]$tech"
print[test_string.startswith["$"]]
#Output
True
How to print special characters in Python
Sometimes we might want to print the special characters to see special characters present in the string. For example, printing special characters in normal way prints the Str\ting
as Str ing
because we have "\t" in the string.
To print the special characters as it is, we have to use repr[] functions.
base_string = "Str\ting"
special_string = repr[base_string]
print["base string: "+ base_string]
print["special_string :"+special_string]
The output of printing special characters
base string: Str ing
special_string :'Str\ting'
Python Abstract Method and Abstract Class
Python comments are those who start with the hash[#] character and extended to the end of the physical line, where the python virtual machine does not execute the line with the hash character, A comment may appear at the start of the line or following by the whitespace but never come in between the string.
For multiline comments, you can use the hash character at the beginning of every line.
# print["chercher.tech software solutions"]
print["This is an example of comment in python"]
So if you observe, in the above image, the line with the hash character has not printed in the output as it is ignored by the python virtual machine.
Another way to comment on multiple lines in python is by using triple quotes. The string literal when not assigned to a variable is completely ignored by the python interpreter. Three consecutive single ''' or double " " " quotes can be placed before and after the text for long comments in the code.
Example,
'''
This is a multiple
line comment in python '''
" " " The comments are completely
ignored by python interpreter " " "
Python Mutability
In Python, the constants are usually declared and assigned on a module, and a module means the new file containing a variable and functions which is imported to the main file.
Constants are written in uppercase and separated by the underscore, and this constant concept is not really implemented in python.
MAX-VALUE=10
MAX-VALUE=20