Python和历史扩展

时间:2017-02-18 20:19:33

标签: python linux

我正在编写一个在我的Linux NAS上执行的Python脚本,并进入了有趣的情况。

访问以感叹号(历史记录扩展)开头的文件/目录时出现问题。

import os
path = "/volume1/Images/!Test/DSC_5062.NEF"
os.stat(path)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module> 
OSError: [Errno 2] No such file or directory: '/volume1/Images/!Test/DSC_5062.NEF'

如果我试图逃避感叹号,我会得到以下内容:

import os
path = "/volume1/Images/\!Test/DSC_5062.NEF"
os.stat(path)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module> 
OSError: [Errno 2] No such file or directory: '/volume1/Images/\\!Test/DSC_5062.NEF'

知道该怎么办?顺便说一句,第一个代码片段在我的MacOS机器上运行没有任何问题,但它不能在我的Linux NAS上运行。

如果我在命令行中执行以下操作以提供完整信息,我将获得以下结果。

admin@nas:/tmp$ ls /volume1/Images/!Test/DSC_5062.NEF
-sh: !Test/DSC_5062.NEF: event not found
admin@nas:/tmp$ ls /volume1/Images/\!Test/DSC_5062.NEF
/volume1/Images/!Test/DSC_5062.NEF

感谢您的帮助。

米甲

1 个答案:

答案 0 :(得分:-1)

尝试将其放在引号中:

import os
path = "/volume1/Images/"'!'"Test/DSC_5062.NEF"
os.stat(path)