我遇到了麻烦。我有几个目录,然后我需要使用os.chdir光盘。但我在接下来的代码块中不断收到错误:
import os
new_folder = 'Zarazogic acid A'
os.chdir(new_folder)
FileNotFoundError: [Errno 2] No such file or directory: 'Zarazogic acid A'我尝试通过以下方式转义字符:
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'尝试使用'\‘或甚至'\’进行转义-仍然得到相同的错误。我该如何解决这个问题?
发布于 2017-02-11 06:36:33
Python 3代码
下面是一个简单的Python3脚本(md23.py),它显示目录并不是您认为的位置。
#!/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上工作。
如果脚本位于其他空目录中,则输出为:
0: ['md23.py']
1: ['md23.py', 'Zarazogic acid A']
2: []
3: ['md23.py', 'Zarazogic acid A']
4: ['md23.py']这表明可以创建、列出、更改目录,新目录是空的,当更改目录级别时,该目录仍然存在,并且可以删除。
您应该能够使用它,将它放在当前脚本旁边,并运行它,它应该会成功。如果Zarazogic acid A目录已经存在,它将失败。例如,如果我在运行脚本之前创建目录,则会得到以下输出:
$ 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,也打印了目录名:
#!/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('.')示例运行:
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']https://stackoverflow.com/questions/42169470
复制相似问题