8

whileでスクリプトを開始する場合、ループする方法はありpython -cますか? これは、プラットフォームや python のバージョンとは関係ないようです...

Linux

[mpenning@Hotcoffee ~]$ python -c "import os;while (True):    os.system('ls')"
  File "<string>", line 1
    import os;while (True):    os.system('ls')
                  ^
SyntaxError: invalid syntax
[mpenning@Hotcoffee ~]$
[mpenning@Hotcoffee ~]$ python -V
Python 2.6.6
[mpenning@Hotcoffee ~]$ uname -a
Linux Hotcoffee 2.6.32-5-amd64 #1 SMP Sun May 6 04:00:17 UTC 2012 x86_64 GNU/Linux
[mpenning@Hotcoffee ~]$

ウィンドウズ

C:\Users\mike_pennington>python -c "import os;while True: os.system('dir')"
  File "<string>", line 1
    import os;while True: os.system('dir')
                  ^
SyntaxError: invalid syntax

C:\Users\mike_pennington>python -V
Python 2.7.2

C:\Users\mike_pennington>

whileステートメントで括弧を削除しようとしましたが、これを実行するものは何もないようです。

4

4 に答える 4

10
python -c $'import subprocess\nwhile True: subprocess.call(["ls"])'

動作します ( と に注意してください$'...') \n

の下でのみ機能する可能性があります-よくわかりません...

于 2012-06-27T12:37:32.357 に答える
5

複数行のステートメントは、Python でステートメント区切りの後に開始され;ない場合があります。そうでない場合、コード ブロックについてあいまいさが生じる可能性があります。の代わりに単に改行を使用して;ください。これは Linux で「動作」します。

$ python -c "import os
while True: os.system('ls')"

Windows でこれを入力する方法がわかりませんが、コマンドが.py複数行ある場合は、単にコマンドをファイルに書き込んでみませんか?

于 2012-06-27T12:34:20.457 に答える
2

本当にWindowsでこれを行う必要がある場合は、execを使用できます。

python -c "exec \"import os;\rwhile True:\r  os.system('dir')\""

dir( Windowsシステムで動作するように置き換えました)

于 2012-06-27T12:48:35.497 に答える
2

ウィンドウについてはわかりません。ワンライナーで入力できるようにすることだけが必要な場合は、引用符内で改行を検討できます。

% python -c "import os;
while (True):
  os.system('ls')"
于 2012-06-27T12:34:30.057 に答える