执行sh文件或者在运行项目时出现 --dataset: command not found这类 及 SyntaxError: EOL while scanning string literal

–dataset: command not found

我的错误或者说怎么解决的

原来的shell文件内容

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

即可

一般而言,或者说主要错误原因

其实就是参数没加呗,代码有如下要求,那就得加啊,除非你有default值

在这里插入图片描述

在pycharm的下图的Parameters加上–dataset就行
在这里插入图片描述
如果是shell文件,那也同理

SyntaxError: EOL while scanning string literal

我的错误

print("Hello World!')

好家伙,是不是看不太出来
我也是百度半天,然后不小心才发现的,print里面,前面是双引号,后面是单引号,这就是问题所在了。
改成

print("Hello World!")

就对了

其次最容易出现的问题原因就是windows中写代码拼接路径容易出现这个错误

这是因为 python中字符串不能以 \ 结尾,在python中字符串太长时想换行,可以用反斜杠来换行,所以反斜杠后面不能立即接上字符串结束的引号。
例如path = r'D:\code\git\’ + image_name
这样一运行就会报错。

这个的解决方法也很简单
方法一 : 使用 os.path.join

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

方法二:路径的反斜杠使用转义 而不用 r

扫描二维码关注公众号,回复: 15725839 查看本文章
path = 'D:\\code\\git\\' + image_name

方法三:格式化字符串

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

方法四: string interpolation (字符串内插)

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

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

更不能前面是双引号,后面是单引号,如

shell文件中的 \ 换行保持连续的符号去掉,改成空格,别换行

猜你喜欢

转载自blog.csdn.net/weixin_42455006/article/details/127018448