首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用file.close()函数时Python中的Errno 9坏文件描述符

使用file.close()函数时Python中的Errno 9坏文件描述符
EN

Stack Overflow用户
提问于 2019-05-20 10:11:35
回答 1查看 1.8K关注 0票数 0

在每次遇到错误时运行下面的代码:

"OSError: Errno 9坏文件描述符“

在f.flush()和f.close()行。注释掉f.flush()和f.close()行似乎修复了这个错误,但我仍然不明白为什么会出现这个问题。

代码语言:javascript
复制
import numpy as np
#import math
import os
import matplotlib.pyplot as plt
import networkx as nex

def creator(self):      #Creating an Adjaceny Matrix From Given CSV
        print("AdjacenyList\%s" %(self.string))
        if(os.path.isdir("AdjacenyList\%s" %(self.string))==False):
            os.mkdir("AdjacenyList\%s" %(self.string))
        os.chdir("AdjacenyList\%s" %(self.string))
        f=open("%s_AdjList.txt" %(self.string), 'w')

        for i in range(0, len(self.foodweb)):
            m=0
            f.write("%d" %(i))
            for j in self.foodweb[i,:]:
                if j>0:
                    f.write(" %d" %(m))
                m+=1
            f.write("\n")
        f.flush()
        f.close()

另外,当我以'rb‘模式打开另一个文件(在同一个脚本中)并在读取它之后刷新和关闭它时,没有问题。任何帮助都将不胜感激。

代码语言:javascript
复制
def plotter(self):

        print(self.foodweb.shape)
        g=open("%s_AdjList.txt" %(self.string),'rb')
        self.DirGraph=nex.read_adjlist(g, create_using=nex.DiGraph)
        nex.draw_networkx(self.DirGraph)
        plt.axis('off')
        plt.show()
        plt.close()
        g.flush()
        g.close()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-20 10:16:32

试着打开完整的路径

代码语言:javascript
复制
"AdjacenyList\%s\s_AdjList.txt" %(self.string)

你错过了\试试f = open("\%s_AdjList.txt" % (self.string), 'w')

请将"AdjacenyList\%s" %(self.string)和打开的目录"\%s_AdjList.txt" % (self.string)提取为变量并打印它们。并确认它们是一样的?(不包括文件名)?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56218731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档