Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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_Json - Fatal编程技术网

正在更改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

我正在学习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.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