python - Python 中的 "IOError: [Errno 0] Error"错误

标签 python regex runtime-error

我有一个脚本应该将某些内容附加到文件,但它引发了一个我不理解的错误,也不确定它是如何被触发的。

代码如下:

import re

num_words = "four kiddiewinks|four children|four kids"
words_list = num_words.split('|')

def append_2synonym(words_list, num_words):
    with open('test2 words.txt', 'a+') as f:
        read_f = f.read()
        patt = r'^' + words_list[0] + '\|'
        result = re.search(patt, read_f, re.MULTILINE)
        if result == None:
            f.write("\n" + num_words)
        else:
            print "\nNo match found in '2 words.txt' file"

append_2synonym(words_list, num_words)

这是“test2 words.txt”文件的内容:

five kiddiewinks|five kids|five children
mobile phone|cell phone|cellular phone
stinky cheese|smelly cheese

这是我得到的完整错误:

Traceback (most recent call last):
  File "D:\Magic Briefcase\My Python Scripts\Spin Scripts\synonyms\testing2.py", line 16, in <module>
    append_2synonym(words_list, num_words)
  File "D:\Magic Briefcase\My Python Scripts\Spin Scripts\synonyms\testing2.py", line 12, in append_2synonym
    f.write("\n" + num_words)
IOError: [Errno 0] Error
[Finished in 0.1s with exit code 1]

最佳答案

引用来自 Python file operations 的回答, 在 Windows 上切换读写时,必须有 fflush、fsetpos、fseek 或 rewind 操作介入。

这里是一个可能的修复:

import re

num_words = "four kiddiewinks|four children|four kids"
words_list = num_words.split('|')

def append_2synonym(words_list, num_words):
    with open('test2 words.txt', 'a+') as f:
        read_f = f.read()
        patt = r'^' + words_list[0] + '\|'
        result = re.search(patt, read_f, re.MULTILINE)
        if result == None:
            f.seek(0,2) # change is here !!
            f.write("\n" + num_words)
        else:
            print "\nNo match found in '2 words.txt' file"

append_2synonym(words_list, num_words)

f.seek(0,2) 中,2from_what 参数。 0from_what 值从文件开头开始测量,1 使用当前文件位置,2使用文件末尾作为引用点。 from_what 可以省略,默认为 0,使用文件的开头作为引用点。

关于python - Python 中的 "IOError: [Errno 0] Error"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19283118/

相关文章:

python - 将两个 numpy.arrays 之间的比较仅应用于一列但检索整行

php - 将 abcd 转换为 (a(b(c(d)))) 的正则表达式

c - 在我的2D数组中搜索时出现段错误(核心转储)错误

在 Eclipse 中使用 Grep Console 查找子字符串的正则表达式

excel - 运行时错误1004;错误处理

android - 如何防止 OneLogin Protect android app v4.3.0 崩溃?

python - 从列表中删除 NoneType 元素的 native Python 函数?

python - 如何以编程方式检查 apache tomcat 是否在 python 中运行?

python - 将关键字参数传递给另一个函数,其中关键字具有默认值

python正则表达式返回完整结果