Python escape special characters in sys argv
argv, bash, command-line, python, string
Solution
it's not a matter of python, you need to escape it in the calling shell. simply escape quotes as `\"` and semicolons as `\;`.
$ python testme.py "With these words she greeted Prince Vasili Kuragin, a man of high rank and importance, who was the first to arrive at her reception. Anna Pavlovna had had a cough for some days. She was, as she said, suffering\" from la grippe; grippe being then a new word in St. Petersburg\""
With these words she greeted Prince Vasili Kuragin, a man of high rank and importance, who was the first to arrive at her reception. Anna Pavlovna had had a cough for some days. She was, as she said, suffering" from la grippe; grippe being then a new word in St. Petersburg"
Problem
I have a script that takes sys.argv and the input may contain special characters (semicolon). I just need the input as string, but semicolon messes everything up.. I have: ``` def myscript(text) print text a = myscript(sys.argv[1]) print a ``` I try: ``` >> python script.py "With these words she greeted Prince Vasili Kuragin, a man of high rank and importance, who was the first to arrive at her reception. Anna Pavlovna had had a cough for some days. She was, as she said, suffering" from la grippe; grippe being then a new word in St. Petersburg"" ``` I get: ``` 'With these words she greeted Prince Vasili Kuragin, a man of high rank and importance, who was the first to arrive at her reception. Anna Pavlovna had had a cough for some days. She was, as she said, suffering' None bash: grippe: command not found ``` I just want to get the whole string into the script no matter what is inside it.. I tried: ``` a = myscript(repr(sys.argv[1])) a = myscript(str(sys.argv[1])) ```