当前位置: 首页 > 面试题库 >

IOError:[Errno 2]没有这样的文件或目录写入主目录中的文件

嵇永望
2023-03-14
问题内容

我在下面的代码中将一些文本存储在主目录中的〜/ .boto文件中。

但是我得到这个错误:

IOError: [Errno 2] No such file or directory: '~/.boto'

这是代码:

file = open("~/.boto") 
file.write("test")
file.close()

问题答案:

您需要使用os.path.expanduser并使用以下命令打开以进行编写w

import  os

# with will automatically close your file
with open(os.path.expanduser("~/.boto"),"w") as f:
    f.write("test") # write to file

os.path.expanduser(路径)

在Unix和Windows上,返回带有〜或〜user初始部分的参数替换为该用户的主目录。

在Unix上,如果设置了首字母〜,则由环境变量HOME代替;否则,将通过内置模块pwd在密码目录中查找当前用户的主目录。最初的〜user直接在password目录中查找。

在Windows上,如果已设置,则将使用HOME和USERPROFILE,否则将使用HOMEPATH和HOMEDRIVE的组合。通过从上面派生的创建的用户路径中删除最后一个目录组件来处理初始用户。

如果扩展失败,或者路径不是以波浪号开头,则路径将保持不变。

In [17]: open("~/foo.py")
---------------------------------------------------------------------------
IOError                                   Traceback (most recent call last)
<ipython-input-17-e9eb7789ac68> in <module>()
----> 1 open("~/foo.py")

IOError: [Errno 2] No such file or directory: '~/foo.py'

In [18]: open(os.path.expanduser("~/foo.py"))
Out[18]: <open file '/home/padraic/foo.py', mode 'r' at 0x7f452d16e4b0>

默认情况下,仅打开文件以供读取,如果要打开文件以供使用w,f要打开以进行读写r+或附加使用a

如果文件中有内容,则将w覆盖 ;如果要添加到文件中,请使用a



 类似资料:
  • 问题内容: 我在Windows中使用Code :: Blocks。 我创建了一个dll项目,试图获得一些JNI实践。 在javah生成的.h文件中,有#include jni.h,但是当我尝试对其进行编译时,它总是说jni.h:没有这样的文件或目录。 我认为这与classpath有关,但我不知道它是什么!可能是我必须更改Code :: Blocks的设置 有人可以帮我解决这个问题吗?非常感谢 编辑

  • 问题内容: 我从节点应用程序收到此错误: 我知道文件在那里,因为当我尝试使用确切的复制和粘贴路径打开文件时,它可以工作。我也知道应用程序使用的是正确的目录,因为它会在错误中输出它。 问题答案: 波浪形扩展是一件空壳的事情。编写正确的路径名(可能是yourusername )或使用

  • 问题内容: 我最近在运行Ubuntu 12.04 LTS的Macbook Pro上安装了用于C ++开发的KDevelop 4。 我想在我的C ++代码中嵌入Python应用程序。为此,需要包含Python.h头文件。所以,我做到了。 但是,在运行时,我从IDE收到以下响应: 但是,我很快就发现了问题。我还没有下载python- dev软件包。所以,我做到了。我又跑了一次,但同样的错误又出现了。因

  • 问题内容: 我在运行docker文件时收到来自docker的错误消息。就是说/ var / lib / docker / aufs / layers / xxxx:运行Docker build时没有这样的文件或目录。 我尝试了多种方法来删除容器和图像,因此我对此非常有兴趣。 任何 Docker文件为: 完整的控制台输出为: 编辑 @BMitchs的建议解决了该问题: rm -rf / var /

  • 我想我没有从源代码正确安装pylint。这是学习python中包如何工作的好机会。 我从源代码中安装了,我可以在我的pip列表中看到它。 我想卸载它并从pypi安装。 但是,我的2个pip是空的,但是当我使用 我得到一个错误 有没有办法删除这个bash命令?Pylint可能是安装了,但我不知道在哪里,或如何删除它? 编辑:正如评论中建议的,我尝试了这个链接查找哪个版本的包安装了pip。这也给了我一

  • 一切正常,uri正在获取图像和路径,但在第二个acitivty返回时,图像不显示在imageView中,并在logcat中显示,请帮助 E/Ashish://storage/emulated/0/pictures/fotoaula/img_20180329_183302.jpg E/bitmapFactory:无法解码流:java.io.fileNotFoundException://storag