Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python目录路径中的空格_Python_Macos_Spaces - Fatal编程技术网

python目录路径中的空格

python目录路径中的空格,python,macos,spaces,Python,Macos,Spaces,我是编写Python代码的高手,我遇到了谷歌搜索都帮不了我的事情。 我正在尝试编写一个简单的目录列表工具,但我似乎无法在OSX中处理目录名中的空格。 我的代码如下: def listdir_nohidden(path): import os for f in os.listdir(path): if not f.startswith('.'): yield f def MACListDirNoExt(): import os MACu =

我是编写Python代码的高手,我遇到了谷歌搜索都帮不了我的事情。 我正在尝试编写一个简单的目录列表工具,但我似乎无法在OSX中处理目录名中的空格。 我的代码如下:

def listdir_nohidden(path):
    import os
    for f in os.listdir(path):
        if not f.startswith('.'):
            yield f

def MACListDirNoExt():
import os
MACu = PCu = os.environ['USER']
MACDIR = '/Users/'+MACu+'/Desktop//'
while True:
    PATH = raw_input("What is the PATH you would like to list?")
    if os.path.exists(PATH):
        break
    else:
        print "That PATH cannot be found or does not exist."
NAME = raw_input ("What would you like to name your file?")
DIR = listdir_nohidden(PATH)
DIR = [os.path.splitext(x)[0] for x in DIR]
f = open(''+MACDIR+NAME+'.txt', "w")
for file in DIR:
    f.write(str(file) + "\n")
f.close()
print "The file %s.txt has been written to your Desktop" % (NAME)
raw_input ("Press Enter to exit")
为了便于故障排除,我认为这基本上可以归结为:

import os
PATH = raw_input("What is the PATH you would like to list")
os.listdir(PATH)
当提供包含空间/卷/磁盘/的目录路径时,它将返回一个文件夹

“没有这样的文件或目录:'/Volumes/Disk/this\\is\\a\\folder/'


它看起来像是在转义…?

检查从原始输入()返回的值是否出现“\\”并将其替换为“”


我刚刚遇到了这个问题,我猜我匆忙做的事情也是你在尝试的。在某种程度上,@zwol和@trans1st0r都是对的

你的精简程序没有问题。我相信如果你输入
/Volumes/Disk/这是一个文件夹
,一切都会正常工作

但是,您可能一直在做的(或者至少是我正在做的)是将文件夹从查找器拖到终端。当您拖到终端时,操作系统会自动为您转义空间,因此最终输入终端的是
/Volumes/Disk/this\is\a\ folder


所以你可以确保你输入的内容“没有这些反斜杠,或者您可以使用@trans1st0r的建议作为支持拖动功能的一种方式,尽管后者会在您所需路径中实际有反斜杠的情况下导致问题。

显示的代码无法生成显示的错误消息。请显示您实际运行的代码,未编辑,您提供的确切输入,未编辑,以及您实际收到的错误消息,未编辑。另外请注意,您的第二个代码片段(“简化”代码片段)在名称中带有空格的目录上正常工作,您的第一个代码片段出现错误,因此我无法对其进行测试(不要使用制表符)。(您的问题可能是在提示时键入反斜杠?不要这样做。shell希望这样做,但此程序不这样做。)如果输入带有空格但没有反斜杠,则最后一个代码片段可以正常工作。好的,这是一个更新。在目录中键入时,代码工作正常。当我将要列出的目录拖到应用程序运行的终端窗口中时,就会出现问题。shell自动将路径写入/Volumes/Disk/This\is\a\folder\它正在输入自己的转义并将其传递给原始输入。有没有办法解释这一点?
a = a.replace('\\', '')