我已经查看了一些有关此主题的帖子,但没有看到任何特别符合我用法的内容。 This one looks to be close同一问题。他们谈论逃避逃脱角色。
我的问题是我希望这个脚本在MAC和PC系统上运行 - 并且能够处理文件夹名称中包含空格的子文件夹中的文件。
现在我使用从几个不同的SO帖子中部分收集的代码:
directory = raw_input("Enter the location of the files: ")
path = r"%s" % directory
for file in os.listdir(path):
我不太清楚第二条线在做什么 - 所以也许这就是需要调整的明显线条。它适用于常规文件夹名称,但名称中没有空格。
我尝试过使用" \"而不只是" ", - 没有用 - 但无论如何我都在寻找代码解决方案。我不希望用户必须指定转义字符
在Windoze上使用子文件夹名称" LAS Data"为了响应raw_input提示(不带引号),我收到一条消息:
系统无法找到指定的路径" LAS Data \ *。*"
答案 0 :(得分:2)
您的问题很可能不是您提供的代码,而是您提供的输入。消息
系统无法找到指定的路径" LAS Data \ *。*"
建议您(或用户)与文件的通配符一起输入目录。一个名为" LAS Data \ *。*"的目录。确实不存在(除非你对你的文件系统做了一些特别的事情: - )。
尝试输入" LAS数据"代替。
不应该需要原始字符串
> python
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> directory = raw_input("Enter the location of the files: ")
Enter the location of the files: Directory with Spaces
>>> for file in os.listdir(directory):
... print(file)
...
hello-1.txt
hello-2.txt
>>>
答案 1 :(得分:1)
我不太明白[
path = r"%s" % directory
]行在做什么
它会创建path
的副本directory
:
>>> directory = raw_input()
LAS Data
>>> path = r"%s" % directory
>>> path == directory
True
>>> type(path), type(directory)
(<type 'str'>, <type 'str'>)
真想知道你从哪里得到的。似乎没有意义。