Python >> Tutoriel Python >  >> Python Tag >> Windows

comment utiliser python -c sous windows ?

Essayez backtick au lieu de backslash.

Erreur :

PS C:\Users\me> python -c "def hello():\n    print('hello world')"
  File "<string>", line 1
    def hello():\n    print('hello world')
                                         ^
SyntaxError: unexpected character after line continuation character
PS C:\Users\me>

D'accord :

PS C:\Users\me> python -c "def hello():`n    print('hello world')"
PS C:\Users\me>

Utile :

PS C:\Users\me> python -c "def hello():`n    print('hello world')`nhello()"
hello world
PS C:\Users\me>

Juste en écho pour le voir :

PS C:\Users\me> echo "def hello():`n    print('hello world')`nhello()"
def hello():
    print('hello world')
hello()
PS C:\Users\me>

Voir PowerTip :Nouvelles lignes avec PowerShell


Votre problème est que vous attendez peut-être \n être traduit en saut de ligne par quelque chose ... que ce soit le shell (cmd.exe vraisemblablement), ou python lui-même.

Ni l'un ni l'autre ne le fait. Au lieu de cela, si votre shell est cmd.exe alors vous devez utiliser un caractère de continuation de ligne et entrer un réel nouvelle ligne.

Par exemple, supposons que vous vouliez effectivement echo les mots blob et blub avec une nouvelle ligne. Ensuite, vous utiliserez :

c:\>echo blob^
More? <press enter>
More? blub
blob
blub

Donc ... de manière équivalente

c:\>python -c "def hello():"^
More?
More? "  print('hello world')"^
<no output, all you did was define a function>

Pour l'appeler alors

c:\>python -c "def hello():"^
More? <press return>
More? "  print('hello world')"^
More? <press return>
More> hello()
hello world