首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >指向名称中包含空格/逗号的目录的os.chdir

指向名称中包含空格/逗号的目录的os.chdir
EN

Stack Overflow用户
提问于 2017-02-11 06:10:04
回答 1查看 2.3K关注 0票数 0

我遇到了麻烦。我有几个目录,然后我需要使用os.chdir光盘。但我在接下来的代码块中不断收到错误:

代码语言:javascript
复制
import os
new_folder = 'Zarazogic acid A'
os.chdir(new_folder)
FileNotFoundError: [Errno 2] No such file or directory: 'Zarazogic acid A'

我尝试通过以下方式转义字符:

代码语言:javascript
复制
new_directory = 'Zarazogic acid A'
new_directory = new_directory.replace(' ', '\ ')
os.chdir(new_directory)
FileNotFoundError: [Errno 2] No such file or directory: 'Zarazogi\\acid\\A'

尝试使用'\‘或甚至'\’进行转义-仍然得到相同的错误。我该如何解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2017-02-11 06:36:33

Python 3代码

下面是一个简单的Python3脚本(md23.py),它显示目录并不是您认为的位置。

代码语言:javascript
复制
#!/usr/bin/env python3

import os

new_folder = 'Zarazogic acid A'

print("0:", os.listdir('.'))
os.mkdir(new_folder)
print("1:", os.listdir('.'))
os.chdir(new_folder)
print("2:", os.listdir('.'))
os.chdir('..')
print("3:", os.listdir('.'))
os.rmdir(new_folder)
print("4:", os.listdir('.'))

它不是很漂亮,但它在Python3上工作--你必须改变打印方式才能让它在Python2上工作。

如果脚本位于其他空目录中,则输出为:

代码语言:javascript
复制
0: ['md23.py']
1: ['md23.py', 'Zarazogic acid A']
2: []
3: ['md23.py', 'Zarazogic acid A']
4: ['md23.py']

这表明可以创建、列出、更改目录,新目录是空的,当更改目录级别时,该目录仍然存在,并且可以删除。

您应该能够使用它,将它放在当前脚本旁边,并运行它,它应该会成功。如果Zarazogic acid A目录已经存在,它将失败。例如,如果我在运行脚本之前创建目录,则会得到以下输出:

代码语言:javascript
复制
$ mkdir 'Zarazogic acid A'
$ python3 md23.py
0: ['md23.py', 'Zarazogic acid A']
Traceback (most recent call last):
  File "md23.py", line 8, in <module>
    os.mkdir(new_folder)
FileExistsError: [Errno 17] File exists: 'Zarazogic acid A'
$

Python 2代码

一个变体脚本md29.py,也打印了目录名:

代码语言:javascript
复制
#!/usr/bin/env python2.7

import os

new_folder = 'Zarazogic acid A'


print "0:", os.getcwd(), os.listdir('.')
os.mkdir(new_folder)
print "1:", os.getcwd(), os.listdir('.')
os.chdir(new_folder)
print "2:", os.getcwd(), os.listdir('.')
os.chdir('..')
print "3:", os.getcwd(), os.listdir('.')
os.rmdir(new_folder)
print "4:", os.getcwd(), os.listdir('.')

示例运行:

代码语言:javascript
复制
0: /Users/jleffler/soq/junk ['md23.py', 'md29.py']
1: /Users/jleffler/soq/junk ['md23.py', 'md29.py', 'Zarazogic acid A']
2: /Users/jleffler/soq/junk/Zarazogic acid A []
3: /Users/jleffler/soq/junk ['md23.py', 'md29.py', 'Zarazogic acid A']
4: /Users/jleffler/soq/junk ['md23.py', 'md29.py']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42169470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档