首页 > 解决方案 > 读取文件时出现错误“OSError: [Errno 22] Invalid argument”

问题描述

我正在开发一个可以使用文本文件对输入进行编码和解码的项目。在它解码的部分它给出了一个错误,我不知道为什么。如果你用谷歌搜索它,你会得到问题出在路径上的结果。但我没有路。我能做些什么?错误在第 62 行。这是整个代码。这是循环“while i < lengte + 1”中的第二行。我是荷兰人,所以如果变量的名称并不总是有意义,那就是原因。完整的错误是

    readed = compressed.read(i)
OSError: [Errno 22] Invalid argument'
message = input("what's your input?")
lengte = len(message)

compressed = open('compressed message.txt', 'a')
compressed.truncate(0)
compressed.close()

codeBook = {}

i = 0

text = message[i]
codeBook[text] = 1
eersteLetter = text + " " 
compressed = open('compressed message.txt', 'a')
compressed.write(eersteLetter)
compressed.close()
i += 1

while i < lengte :
    text = message[i]
    while text in codeBook:
        if i < lengte-1: 
            text = text + message[i+1]
        i += 1
if len(text) > 2:
    duplicate = text[0:-2]
    compressedText = str(codeBook[duplicate]) + text[-1]
    compressed = open('compressed message.txt', 'a')
    compressed.write(compressedText)
    codeBook[text] = len(codeBook)+1
    compressed.close()
elif len(text) > 1:
    duplicate = text[0]
    compressedText = str(codeBook[duplicate]) + text[-1]
    compressed.write(compressedText)
    codeBook[text] = len(codeBook)+1
    compressed.close()
else:
    compressedText = text
    compressed = open('compressed message.txt', 'a')
    compressed.write(compressedText)
    codeBook[text] = len(codeBook)+1
    compressed.close
    i += 1

compressed = open('compressed message.txt', 'r')
print(compressed.read())
compressed.close()
print(codeBook)



bookCode = {}
i = 1
compressed = open('compressed message.txt', 'r')
lengte = len(compressed.read())
compressed.close()

while i < lengte+1:
    compressed = open('compressed message.txt', 'r')
    readed = compressed.read(i)
    compressed.close()
    if readed == ' ':
        i += 1
    elif type(readed) == int:
        i += 1
        compressed = open('compressed message.txt', 'r')
        text = text + bookCode[readed] + compressed.read(i)
        bookCode[len(bookCode)+1] = bookCode[readed] + compressed.read(i)
        compressed.close()
        i += 1
    elif type(readed) == str:
        text = text + readed
        bookCode[len(bookCode)+1] = readed
print(' ')
print(text)
print(bookCode)

标签: pythontext-files

解决方案


如果此 txt 文件的路径位于当前位置,则它必须工作,但如果不是,您应该找到完整路径并将其存储在变量中。像 path="C://Desktop// 等等


推荐阅读