正在更改python中的目录-无法识别字符串
我正在学习python,我试图完成的操作之一是更改目录。我将目录名存储在字典中,然后尝试按如下方式访问这些目录: 创建目录:正在更改python中的目录-无法识别字符串,python,json,Python,Json,我正在学习python,我试图完成的操作之一是更改目录。我将目录名存储在字典中,然后尝试按如下方式访问这些目录: 创建目录: for i in range(length): try: original_umask = os.umask(0) os.makedirs(item_dict[i], 0755) finally: os.umask(original_umask) for i in range (length): os
for i in range(length):
try:
original_umask = os.umask(0)
os.makedirs(item_dict[i], 0755)
finally:
os.umask(original_umask)
for i in range (length):
os.chdir(item_dict[i])
这是有效的。但是,当我稍后尝试通过访问这些目录进行进一步处理时,我遇到以下错误:
osdir = os.getcwd()
print " current working directory is " + osdir //works correctly
for i in range (length):
os.chdir((item_dict[i])
Traceback (most recent call last):
File ".\actions.py", line 40, in <module>
os.chdir((item_dict[i]))
WindowsError: [Error 2] The system cannot find the file specified: u'd-025c49f7-116e-4ad1-909e-13cc59b03dc3/'
osdir=os.getcwd()
打印“当前工作目录为”+osdir//工作正常
对于范围内的i(长度):
os.chdir((第[i]项)
回溯(最近一次呼叫最后一次):
文件“\actions.py”,第40行,在
os.chdir((第[i]项)
WindowsError:[错误2]系统找不到指定的文件:u'd-025c49f7-116e-4ad1-909e-13cc59b03dc3/'
这里025c49f7-116e-4ad1-909e-13cc59b03dc3/是目录名。与前面所示的代码相同。有指针吗?os.chdir()更改Python脚本其余部分的当前目录。最好不要更改目录,而是使用相对路径操作目录中的文件
换句话说,
os.mkdir('a')
os.chdir('a')
os.mkdir('b')
os.chdir('b')
最后创建a/b
并将您留在这个目录中;尝试os.chdir('b')
再次失败,因为这个目录中没有b
——您只是刚刚创建了它,所以它显然是空的
我猜您想创建a
和b
作为当前目录的子目录,而不是前者中的后者。不执行os.chdir('a'))
在创建a
之后,显然可以解决这个问题;更一般地说,除非您特别希望递归地创建嵌套目录的深层序列,否则您的程序很少需要切换其工作目录
不用说
os.chdir('a')
newfile = open('c', 'w')
可以在不更改工作目录的情况下重新措辞
newfile = open(os.path.join(['a', 'c']), 'w')
在这种简单的情况下,
open('a/c','w')
也可以工作;但是如果您在目录名和/或文件名位于变量中的情况下进行非平凡的处理,您需要了解更通用的os.path.join()
语法。为什么在os.chdir((条目[i])中有一个额外的(
)
在第二个代码中?如果您想让chdir
看到目录已成功创建并可以输入,那么您可以使用chdir(“..”
)切换回父目录;但在某些情况下,这会做错误的事情,因此我将重复我的建议,尽可能避免chdir
。