gpt4 book ai didi

python - fusion-python xmp.py - 无法创建文件

转载 作者:行者123 更新时间:2023-12-01 06:01:22 24 4
gpt4 key购买 nike

我正在编写一个网络文件系统,我首先尝试理解 python-fuse 提供的 xmp.py。

基本上,我通过网络发送所有调用,在服务器端执行它,并将结果发送到客户端并将其返回给用户。这些部件工作得很好。

我面临的问题是,xmp.py 无法创建文件,因此问题也出现在我的网络文件系统中。

我遵循的步骤是:

  1. 安装fuse-python:

    sudo apt-get install python-fuse 
  2. 然后我进入 xmp.py 所在的目录位于:

    cd /usr/share/doc/python-fuse/examples/
  3. 我使用以下命令行参数运行了 xmp.py 程序

    python xmp.py -o root=/home/user /tmp/fuse

    哪里/home/user将被复制或安装在/tmp/fuse

  4. 然后我 cd 进入 /tmp/fuse目录并尝试使用 cat 创建一个文件,例如:

    cd /tmp/fuse
    cat > temp.txt

    我收到错误

    bash: temp.txt: Invalid argument

经过一番摸索,我相信这是由于该功能造成的

def getattr(self, path):
return os.lstat("." + path)

当我执行 cat > temp.txt 时, os.lstat("./temp.txt")被调用并抛出错误,文件为 /home/user/temp.txt没有找到。此后,程序会卡住一段时间并降低我的计算机速度。

请帮我找出我做错了什么。

谢谢。

最佳答案

我想我已经弄清楚了,我看到的问题是一旦 os.lstat("./temp.txt") 失败,文件类的 __init__方法被调用,然后立即调用 truncate 并且程序返回。

我遵循的一个解决方案是根本不使用文件类,并实现 Fuse 类的 open/create 来创建文件。

这种方法对我有用。如果有人有更好的建议请告诉我。我想使用面向对象的方法并使用文件类。

关于python - fusion-python xmp.py - 无法创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10258670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com