sh ファイルの実行またはプロジェクトの実行 --dataset: コマンドが見つかりません、および文字列リテラルのスキャン中に SyntaxError: EOL が発生します

–dataset: コマンドが見つかりません

私の間違い、またはその解決方法

元のシェルファイルの内容

python main.py 
  --phase train \
  --dataset_name day-night \
  --lambda_A 1000.0 \
  --lambda_B 1000.0 \
  --epoch 1000 \
  --GAN_type wgan

に変更されました

python main.py --phase train --dataset_name day-night --lambda_A 1000.0 --lambda_B 1000.0 --epoch 1000 --GAN_type wgan

できる

一般に、またはエラーの主な原因

実際にはパラメータは追加されていません。コードには次の要件があるため、デフォルト値がない限り追加する必要があります。

ここに画像の説明を挿入

pycharmの下図のパラメータに-datasetを追加します
ここに画像の説明を挿入
シェルファイルの場合も同様です

SyntaxError: 文字列リテラルのスキャン中に EOL が発生しました

私の間違い

print("Hello World!')

いい人ですね、見えませんか?
私も長い間 Baidu を利用していましたが、印刷物の前に二重引用符、後ろに一重引用符があることに偶然気づきました。これが問題です。
に変更されました

print("Hello World!")

それは正しい

次に、この問題の最も可能性の高い理由は、Windowsのコード スプライシング パスでこのエラーが発生しやすいことです。

これは、Python の文字列は \ で終わることができないためです。Python で文字列が長すぎるときに改行したい場合は、バックスラッシュを使用して改行できるため、バックスラッシュの直後に引用符を続けることはできません。文字列の終わり。
たとえば、path = r'D:\code\git\’ + image_name
次のように実行すると、エラーが報告されます。

これに対する解決策も非常に簡単です。
方法 1: os.path.join を使用します。

path = os.path.join(r'D:\code\git', image_name)

方法 2: r の代わりにパスのバックスラッシュがエスケープされます。

path = 'D:\\code\\git\\' + image_name

方法 3: 文字列の書式設定

dirname="test"
path = r'D:\code\git\%s' % (image_name)  # 第一种格式化方法
#从 python 2.6 开始
path = r'D:\code\git\{}'.format(image_name) # 第二种格式化方法

方法4:文字列補間(文字列補間)

# python 3.6 开始 支持string interpolation
image_name= "test"
path3 = rf'D:\code\git\{
      
      image_name}' 

参考https://cloud.tencent.com/developer/article/1649026

前に二重引用符、後ろに一重引用符があることは言うまでもありません。

シェル ファイル内の \ 改行により、連続記号は削除され、改行の代わりにスペースに変更されます。

おすすめ

転載: blog.csdn.net/weixin_42455006/article/details/127018448