Macos 使用&;打开文件;在中间--- MAC终端 这简直让人发狂——我有一个文件,中间有个符号。当我的python脚本打开它时,&符号充当了命令结束字符或其他东西

Macos 使用&;打开文件;在中间--- MAC终端 这简直让人发狂——我有一个文件,中间有个符号。当我的python脚本打开它时,&符号充当了命令结束字符或其他东西,macos,terminal,Macos,Terminal,有人能告诉我怎么避开这个吗?或者更好的是,我想知道在哪里可以找到终端所有这些特殊字符的列表 提前谢谢 --mac noobBash命令&意味着在后台执行,它将&解释为命令而不是命令的参数,或者从文件名中删除它,这很好,或者像\&那样转义它。Bash命令&意味着在后台执行,它将&解释为一个命令而不是命令的参数,或者从文件名中删除它,这很好,或者像\&那样转义它。您还可以用单引号将整个名称括起来。单引号保护文件名不受几乎所有类型的解释的影响-符号、尖括号、空格等。它们通常比反斜杠更容易使用,因为您不

有人能告诉我怎么避开这个吗?或者更好的是,我想知道在哪里可以找到终端所有这些特殊字符的列表

提前谢谢


--mac noobBash命令
&
意味着在后台执行,它将&解释为命令而不是命令的参数,或者从文件名中删除它,这很好,或者像
\&
那样转义它。Bash命令
&
意味着在后台执行,它将&解释为一个命令而不是命令的参数,或者从文件名中删除它,这很好,或者像
\&

那样转义它。您还可以用单引号将整个名称括起来。单引号保护文件名不受几乎所有类型的解释的影响-符号、尖括号、空格等。它们通常比反斜杠更容易使用,因为您不需要特别将它们应用于每个麻烦的字符,只需引用整个文件名即可


现在,为什么这在Python脚本中是一个问题?您在做什么,shell对文件名的处理是相关的?听起来一点也不对劲。

你也可以用单引号将整个名字括起来。单引号保护文件名不受几乎所有类型的解释的影响-符号、尖括号、空格等。它们通常比反斜杠更容易使用,因为您不需要特别将它们应用于每个麻烦的字符,只需引用整个文件名即可


现在,为什么这在Python脚本中是一个问题?您在做什么,shell对文件名的处理是相关的?听起来一点也不对劲。

您可以使用转义字符\。所以你所要做的就是在下面加上反斜杠:
用&an&;ampersand.txt打开文件
要做到这一点:

打开文件\&使用\&an\&ersand.txt

您可以使用转义字符\。所以你所要做的就是在下面加上反斜杠:
用&an&;ampersand.txt打开文件
要做到这一点:

打开文件\&with\&an\&ersand.txt

除了@Tom answer之外,我认为您必须在文件名中转义单引号,因为文件名中可以有单引号,您可以通过将单引号替换为
“”“
请检查此答案:

除了@Tom answer之外,我认为您必须在文件名中转义单引号,因为文件名中可以有单引号,您可以用
替换单引号。”“
请检查以下答案:

只是一次愚蠢的尝试:在它前面加一个反斜杠来逃避它。你试过用\&来代替吗?谢谢你们两位。成功了。如果你们中的任何一个想正式回答,我会接受的。再次感谢这愚蠢的尝试:在它前面加一个反斜杠来逃避它。你试过用\&来代替吗?谢谢你们两个。成功了。如果你们中的任何一个想正式回答,我会接受的。再次打开要向用户显示的文件。为了打开它,我需要文件名并从终端调用open。文件名包含&character,因此需要对其进行不同的解释。运行外部程序的正确方法是使用模块中的函数。通过这些函数传递的参数不受shell解释的约束,因此无需转义它们。他们完全避免了这个问题。打开一个文件向用户显示。为了打开它,我需要文件名并从终端调用open。文件名包含&character,因此需要对其进行不同的解释。运行外部程序的正确方法是使用模块中的函数。通过这些函数传递的参数不受shell解释的约束,因此无需转义它们。他们完全避免了这个问题。