拆分数据库使用CON文件抛出错误的文件描述符

时间:2014-04-24 10:16:31

标签: python python-3.x

我已经完成了一些研究,从我可以说的情况来看,这通常发生在文件被关闭之前就已经关闭了吗?

但这对于这里发生的事情没有意义。

这是我的代码:

import csv

dicto = {}
name = ""

with open(input("enter filepath here: "), "r") as mainfile:
    reader = csv.reader(mainfile)
    for row in reader:
        name = row[8].lstrip("'")
        name = name.lstrip("\xa0")
        name1 = name
        name = name.upper()
        if not name[:3] in dicto:
            dicto[name[:3]] = [name[:3]+".js", 0]
            with open(dicto[name[:3]][0], "w") as file1: #here is the problem line
                file1.write("tags=[")
        else:
            dicto[name[:3]][1] += 1
        if name[:1] == "#":
            print(name)
        with open(dicto[name[:3]][0], "a") as file2:
            if dicto[name[:3]][1]>0:
                file2.write('various spam')
            else:
                file2.write('various eggs')
for key in dicto.keys():
    with open(dicto[key][0], "a") as file3:
        file3.write("\n];")

我正在运行一个大型数据库并将其拆分为JS文件,这些文件以数据标签的前三个字母命名。它似乎一开始运行正常(有44k条目要经过,所以需要几秒钟才能完成)。总的来说,我目前生成了309个文件,但没有一个是完整的。但是一旦它到达组合“CON”,就会发生错误:

Traceback (most recent call last):
  File "C:\Users\SarbickiN\Documents\Codes\Python\schools\schools.py", line 16, in <module>
    with open(dicto[name[:3]][0], "w") as file1:
OSError: [Errno 9] Bad file descriptor: 'CON.js'

这会关闭程序。有什么理由会发生这种情况吗?我在导致问题的那一行旁边发表评论。


编辑:解决方案(或缺乏解决方案)

CON是Windows中文件的保留名称以及其他一些文件,因此需要替换为其他内容。 Check here for more details

1 个答案:

答案 0 :(得分:1)

自我回答

CON是Windows中文件的保留名称以及其他一些文件,因此需要用其他内容替换。 Check here for more details