如何在Python中保存名称中带有斜杠的文件

时间:2019-03-28 05:18:33

标签: python string

我正在遍历一个元组中的一系列名称,并且我想在每个循环期间使用元组数据作为文件名来保存输出。但是名称中包含斜线。

layers = ['conv1/7x7_s2','pool1/3x3_s2']
for idx,layer in enumerate(layers):
    result=deepdream(net, img, end=layer)
    imag = PIL.Image.fromarray(result,'RGB')
    imag.save('files/'+str(layer)+'.png')

结果包含一个numpy数组 意象是形象 层是我想要的文件名

但是,斜杠被解释为目录定界符 有什么办法可以将图像另存为 conv1 / 7x7_s2.png

还是我应该将斜杠转换为破折号?

3 个答案:

答案 0 :(得分:2)

是的,有一些复杂的方法来保留“斜杠”,但它们可能不值得(例如,使用unicode除法斜杠)。

/root/PycharmProjects/untitled1/venv/bin/python /root/.PyCharm2018.3/config/scratches/scratch.py
Traceback (most recent call last):
  File "/root/.PyCharm2018.3/config/scratches/scratch.py", line 1, in <module>
    import pygame
ImportError: No module named 'pygame'

Process finished with exit code 1


/root/PycharmProjects/untitled1/venv/bin/python /root/.PyCharm2018.3/config/scratches/scratch.py
Traceback (most recent call last):
  File "/root/.PyCharm2018.3/config/scratches/scratch.py", line 1, in <module>
    import pygame
ImportError: No module named 'pygame'

Process finished with exit code 1

答案 1 :(得分:0)

定义目录结构后,不能。由于linux系统会将/解析为目录树的组成部分。您只需将斜杠更改为破折号或下划线即可。

答案 2 :(得分:0)

这些字符中的任何一个都不能在文件名中使用(至少在Windows文件系统中不能使用):\/:*,{{1 }},?"<>。它们都有特定的替代含义。

也没有转义字符或其他替代方法-您只需在文件名中省略或替换这些字符即可。