给fi写信时会出现奇怪的字符

2024-03-29 14:07:04 发布

您现在位置:Python中文网/ 问答频道 /正文

python新手。我正在测试文件,并试图得到一个数字(作为原始输入)写入一个文件。然后我想要一个我做的函数,把这个数作为它的输入参数,用它来做一个等式。你知道吗

但由于某种原因,当写入文件时,会弹出一个奇怪的字符。当我试图复制粘贴它来查找时,它只是复制成一个奇怪的数字块或一个空白。 weird character in notepad

以下是我目前的代码:

def function(x):
    y = x + 1
    return y

Input = raw_input('Number?')

with open('in_test.txt','w+') as inFile_test:
    inFile_test.write(Input)
    lines = inFile_test.readline()
    lines_int = [int(x) for x in lines.split()]
    print str(lines_int)

f_test = function(lines_int)
print str(f_test)

我还尝试将文件格式更改为r+,检查notepad(ANSI)中的编码类型,并查找出现的错误。你知道吗

    lines_int = [int(x) for x in lines.split()]
ValueError: invalid literal for int() with base 10: '\x02'

我假设这个错误是由奇怪的角色引起的,但是我不确定是什么导致了这个奇怪的角色。你知道吗


Tags: 文件intestforinputwithfunction数字
1条回答
网友
1楼 · 发布于 2024-03-29 14:07:04

您需要将文件指针重置回开头。 可以使用tell()函数检查文件指针的当前位置。你知道吗

with open('in_test.txt','w+') as inFile_test:
    inFile_test.write(Input)
    print inFile_test.tell()
    inFile_test.seek(0) # re-position the file pointer to the beginning
    lines = inFile_test.readline()
    lines_int = [int(x) for x in lines.split()]
    print str(lines_int)

另外,对function()的调用不正确,您已将其定义为接受int,但正在使用list参数调用它。你知道吗

相关问题 更多 >