【发布时间】:2015-07-31 23:12:12
【问题描述】:
我尝试在 Python 2.7.3 中打开并读取在虚拟机中运行的文件:
主机:Ubuntu 14.04 LTS
来宾:Debian Wheezy 7.5
虚拟机软件:VirtualBox V4.3.30
在 VM 内的 Python 控制台中,我输入以下内容:
>>> f = open("Testing/results.txt", "w+")
>>> f.read()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 71] Protocol error
文件存在且位于共享文件夹中。如果我尝试对位于 VM 文件系统上的文件执行相同操作,则它可以正常工作。同样以“r+”或“a+”模式打开文件,它可以工作,但不会被截断。在以读取模式打开后手动截断文件是有效的,目前,我使用它作为解决方法。但也许这里有人知道,为什么会出现这个错误?
【问题讨论】:
-
我猜这是主机端共享文件夹的权限问题。您可以尝试让共享文件夹更容易获得主机的许可吗?
-
您使用的是什么类型的共享?视窗?桑巴? VirtualBox 共享?
-
docs.python.org/3.6/tutorial/… f = open("Testing/results.txt", "rb+") 应该适合你。
-
与您要打开的文件相关的 python 脚本在哪里?是在同一个目录吗?
-
1.你试过用C打开文件吗? Python 3?
标签: python linux debian virtual-machine virtualbox