python no such file or directory_python No such file or Directory

python No such file or Directory

python在操作文件的时候,如果出现如下错误:python: can't open file 'myfile.txt': [Errno 2] No such file or directory

或者是如下错误:IOError : No such file or directory

出现问题的原因:

文件不存在,或者目录错误。

解决方案:

1、使用绝对路径(absolute),而不是使用相对路径(relative paths)

例如:E:/Code/Access_Log_Analysis/write_to_file.py

2、通过__file__实现跨平台

如果上面的绝对路径(absolute)改变,可能是程序迁移,部署到远程等,导致路径改变,路径写死就会出现错误。

通过下面的代码,即使路径改变,也依然可以解决问题:# path: 'file_storage/access_log/2020_04/access_log-2020_4_11-9_44_21.csv'

_prefixes_date = time.strftime("%Y_%m", time.localtime())

cwd_path = 'file_storage\\access_log\\' + _prefixes_date + '\\'

file_path = os.path.join(self._current_work_path, cwd_path + 'access_log-' + self._prefixes_time + '.csv')

# 文件目录不存在,新建目录,0755->即用户具有读/写/执行权限,组用户和其它用户具有读写权限;

if not os.path.exists(cwd_path):

os.makedirs(cwd_path, 0o755)

return file_path

像这样的代码基于从Python的magic __file__变量派生当前路径 ,在Windows和Linux上在本地和服务器上运行都没有问题。

同时上面的代码:if not os.path.exists(cwd_path):

os.makedirs(cwd_path, 0o755)

判断是否存在当前路径,如果不存在新建当前路径,并赋予权限。

os.makedirs()方法用于递归创建目录。

同时需要注意:path_01 = 'Test\\path_01\\path_02\\path_03'

os.mkdir()与os.makedirs()的区别:

os.mkdir()创建路径中的最后一级目录,即:只创建path_03目录,而如果之前的目录不存在并且也需要创建的话,就会报错。

os.makedirs()创建多层目录,即:Test,path_01,path_02,path_03,如果都不存在的话,会自动创建。

参考资料:

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值