Python 和历史扩展

标签 python linux

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

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

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

感谢您的帮助。

米哈尔

最佳答案

尝试将其放在引号中:

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

关于Python 和历史扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42320248/

相关文章:

python - 识别表中的 RA 和 Dec 重复项

python - 如何将 CSV 文件中的行存储到 Python 中并使用 HTML 打印数据

php - 当 cron 运行 php 脚本时取消链接不起作用

linux - IA32 IDT 和 linux 中断处理程序

linux - Docker tomcat 7 - 禁止访问欢迎页面

python - 如何在 Python 中为函数添加超时

python - 计算四边形的面积

python - 在Python中从一个文件到另一个文件提取数据

c++ - SELinux:重定位后无法恢复段保护:权限被拒绝

linux - 使用 bash 检查 Linux 应用程序状态,如果不工作则发出警报