FileNotFoundError: [Errno 2] 问题产生原因“之一”及解决办法

标题FileNotFoundError: [Errno 2] 问题产生

在进行python程序创建文件夹的时候(如下代码),

#!/bin/python3.8

import os

goal="/media/user/Element/temp1/temp2/"
os.makedirs("%s/temp3"%(goal))

运行后一直报 FileNotFoundError: [Errno 2]
找不到“/media/user/Element/temp1/temp2/temp3”这个文件/文件夹。

1.os.mkdir() 与 os.makedirs()

自然我去搜索了这个问题,首先搜索到的是,os.mkdir() 和 os.makedirs() 这两者的区别问题,
其中
os.mkdir
语法格式:
os.mkdir(path, mode=0o777, *, dir_fd=None)
需要加一个if语句判断是否存在以保证文件夹存在时不因此出中断

os.makedirs
语法格式:
os.makedirs(name, mode=0o777, exist_ok=False)
当exist_ok=False是会直接报错并中断运行

简单来说,os.mkdir()只能创建已有目录下一级的目录,
例如已存在“/media/user/Element/temp1/”,
只能创建"/media/user/Element/temp1/temp2/",
而不能创建"/media/user/Element/temp1/temp2/temp3"

os.makedirs()可以创建任何一级的目录,在实际使用中更加方便快捷。

但是在上述代码中的问题并不是因此产生的。

2. exFAT硬盘在ubuntu16.04中的权限问题

经过多次测试后发现,是因为Elements硬盘并没有给予user 777 权限的问题,故无法创建文件夹,所以持续报错

解决方法:

1.使用一个ntfs或者FAT格式完全支持ubuntu 16.04 内核“chmod 777 ”给予权限的硬盘
2.下载 fuse-exfat 和 exfat-utils 两个包后,对exFAT硬盘进行权限编辑。

sudo apt-get update
sudo apt-get install fuse-exfat exfat-utils

你可能感兴趣的:(python笔记,ubuntu,linux,运维)