[解決済み] Pythonで予期しないトークン`;'付近で構文エラーが発生する
2022-02-08 09:29:40
質問
私はPythonの初心者なので、どうか助けてください...。
#!/usr/bin/python -tt
import sys
import commands
def runCommands():
f = open("a.txt", 'r')
for line in f: # goes through a text file line by line
cmd = 'ls -l ' + line
print "printing cmd = " + cmd,
(status, output) = commands.getstatusoutput(cmd)
if status: ## Error case, print the command's output to stderr and exit
print "error"
sys.stderr.write(output)
sys.exit(1)
print output
f.close()
def main():
runCommands()
# Standard boilerplate at end of file to call main() function.
if __name__ == '__main__':
main()
次のように実行しています。
$python demo.py
sh: -c: line 1: syntax error near unexpected token `;'
sh: -c: line 1: `; } 2>&1'
error
実行中
less $(which python)
は言う。
#!/bin/sh bin=$(cd $(/usr/bin/dirname "$0") && pwd) exec -a "$0" "$bin/python2.5" "$@"
を削除すると
for loop
とすると、正常に動作します。
$cat a.txt
dummyFile
$ls -l dummyFile
-rw-r--r-- 1 blah blah ...................
$python demo.py
printing cmd = ls -l dummyFile
sh: -c: line 1: syntax error near unexpected token `;'
sh: -c: line 1: `; } 2>&1'
error
ls'を使っているのは、問題を示すためだけです。実際には、私はいくつかの内部シェルスクリプトを使用したいので、私はこの方法だけでこのPythonスクリプトを実行する必要があります。
どのように解決するのですか?
この行が原因です。
cmd = 'ls -l ' + line
に修正する必要があります。
cmd = 'ls -l ' + line.strip()
あなたが
読む
を読むと、テキストファイルの末尾の
\n
. 必要なのは
ストリップ
を使用すると、動作するようになります。その
getstatusoutput()
は、末尾の改行が好きではありません。このインタラクティブなテスト(私が検証した方法です)をご覧ください。
In [7]: s, o = commands.getstatusoutput('ls -l dummyFile')
In [8]: s, o = commands.getstatusoutput('ls -l dummyFile\n')
sh: Syntax error: ";" unexpected
関連
-
Python jiabaライブラリの使用方法について説明
-
python implement mysql add delete check change サンプルコード
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
Python入門 openを使ったファイルの読み書きの方法
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
Python入門 openを使ったファイルの読み書きの方法
-
Python 入出力と高次代入の基礎知識
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】Python elifの構文が無効です【終了しました
-
[解決済み】 'numpy.float64' オブジェクトは反復可能ではない