予期しないトークン付近の構文エラー 脚注のエラー解決
linuxサーバーでpython3ファイルを実行すると、実行時にエラーが報告されることがわかりました:予期しないトークンの近くに構文エラー、慎重に検索してもエラーが見つからなかった、その後、私はスクリプトコンテンツが各行の最後に^M文字を追加したことがわかりました、方法をチェック:vi -bは、スクリプトファイルを開く
Winマシンにスクリプトを保存しようとして、Win下のエディタで編集してしまったのが原因だと思います。
さて、簡単にまとめると以下のようになります。
vim -bコマンドで、次のようにファイルの中身を表示します。
行ごとに^Mが追加されるのでしょうか?
では、この^Mが何なのか、次は何をすればいいのでしょうか?
大昔の大昔の......。 昔のテレタイプライターは、改行するのに2つの文字を使っていました。1文字はスライドを最初の位置に戻し(キャリッジリターン、<CR>、ASCIIコード0Dと呼ぶ)、もう1文字は紙を1行移動(ラインフィード、<LF>、ASCIIコード0Aと呼ぶ)させるものでした。コンピュータが登場した当時は、メモリが非常に高価だった。UNIXの開発者は行末を1文字にし、LinuxもUNIXに倣って<LF>とし、Appleの開発者は<CR>としたのです。MS-DOSやWindowsを開発した人たちは、昔ながらの<CR><LF>にこだわることにしたんだ。
MS-DOSやWindowsでは、キャリッジリターン+ラインフィードで改行を表すため、LinuxのVimでWindowsのVCで書かれたコードを見る場合、行末の "^M" 記号は改行を表します。
基本的な回避策は3つあります。
1. vimエディタに置き換える
vim -b ファイル名
コマンドモードで %s/^M//g を実行し、置換する。
注)上記のコマンドラインの "^M" は "^" + "M" ではなく、 "Ctrl+v ", "Ctrl+M" キーで生成される文字です。
2. dos2unixコマンドで変換する
Dos2unixは、システムのバージョンによってはデフォルトでインストールされています。
Linuxでは、テキストファイルの改行コードに" \n" を使用しますが、Windowsでは改行コードに" \rn"を使用します。そのため、WindowsのテキストファイルをLinuxで使用すると、エラーが発生することがあります。dos2unixは、" \rn" を "\n" に、unix2dosは "\n" を "\rn& quot; に変換するコマンドである。
dos2unix と unix2dos のコマンドは非常にシンプルで、次のような書式で使用します: dos2unix ファイル名
もっと詳しく知りたい方は、マニュアルをご覧ください。 man dos2unix
3. テキスト処理ツールの使用
cat filename | tr -d "/r" > newfile ^M を削除して、新しいファイルを生成します。
同様にsedコマンドなどもあります。置き換え可能なコマンドはすべて新しいファイルを生成するために使用されます。
また、Linuxプラットフォームへのアップロード時に、アップロードの種類をバイナリに選択することで、この問題を回避することができますので、試してみてください。
関連
-
未定義のプロパティ 'xxx' を読み取ることができません。
-
error MSB3073: 変更された場所
-
解決方法: 'chromedriver' 実行ファイルが PATH に存在する必要があります。
-
QT5のQTimerは間違えやすい、正しい使い方
-
エラーです。反復不可能なfloatオブジェクトをアンパックできません
-
Oracle の例外 ORA-01861 を解決する: リテラルが形式文字列に一致しません。
-
laydate が表示される laydate が定義されていない
-
R言語ファイル読み込みエラー
-
ValueErrorの解決に成功:解凍するための値が足りない(期待値2、取得値1)
-
android Spinner で OnItemSelectedListener がデフォルトで一度自動的に呼び出されないようにした。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
gitアップロードファイルのエラーを修正する方法 [rejected] master -> master (fetch first) error: failed to push some refs to '.
-
Mac マシンに nvm をインストールする際の落とし穴 - nvm コマンドが見つかりません。
-
javaは起動したが、終了コード=-805306369を返した。
-
PythonのTypeError: unbound methodの問題を解決する
-
このアプリケーションは、ランタイムに異常な方法で終了するよう要求しました。
-
勉強メモ】pytorchのsqueeze()関数とunsqueeze()関数の紹介
-
新ソナーコードのレビュー課題のまとめ
-
TensorFlowのエラー ValueError: xとyは同じサイズでなければならない
-
ベクトル添え字の範囲外問題の解の1つ
-
inet_pton()およびinet_ntop()関数の説明