Python在输入文件的开头添加空格?

3

我对Python相对较新,在编写一个从输入文件读取信息到列表中的简单程序。我使用的是最新版本(3.7.4)。在Visual Studio和Python IDLE中,我的输出结果也有所不同。

以下是我的输入文件的完整上下文:

min:1,2,3,4,5,6
max:1,2,3,4,5,6
avg:1,2,3,4,5,6

我的代码:

inFile  = open('input.txt', 'r', encoding = 'utf-8')
outFile = open('output.txt', 'w')

for line in inFile :

    line = line.strip('\n')
    print(line[0:3] + " " + line[3:6])

    operation = line[0:3]
    print(line)

    # Create list of integers
    num_list = line[4:]
    print(num_list)
    print("")

outFile.close()
inFile.close()

Python IDLE 3.7.4输出:

mi n:1
min:1,2,3,4,5,6
:1,2,3,4,5,6

max :1,
max:1,2,3,4,5,6
1,2,3,4,5,6

avg :1,
avg:1,2,3,4,5,6
1,2,3,4,5,6

在VS中输出Python 3.7.0

 min:1,2,3,4,5,6
:1,2,3,4,5,6

max:1,2,3,4,5,6
1,2,3,4,5,6

avg :1,
avg:1,2,3,4,5,6
1,2,3,4,5,6

任何帮助都非常感激!编辑:我现在需要的输出是:
min :1,
min:1,2,3,4,5,6
1,2,3,4,5,6

max :1,
max:1,2,3,4,5,6
1,2,3,4,5,6

avg :1,
avg:1,2,3,4,5,6
1,2,3,4,5,6

我有一个输出文件的原因是,一旦我正确地完成这部分功能,我将会添加进一步的程序功能。


1
你的目标输出是什么?是将变量 minmaxavg 与相应的列表作为 Python 对象输出,还是只是打印文件的内容? - arnaud
如果你不打算在文件中写入任何内容,为什么要打开一个输出文件呢? - Jean-François Fabre
3
可能是输入文件开头有字节顺序标记。尝试使用encoding='utf-8-sig'来读取该文件。 - Michael Butscher
3字节的移位,Michael可能是正确的。而Python 3.7.0没有考虑到这一点。 - Jean-François Fabre
@MichaelButscher 这个编码对我有用!非常感谢你! - Izzy
1个回答

0
随着2019年7月8日发布的Python 3.7.4版本,文本文件的编码默认为UTF-8,这就是为什么您会看到IDLE和VS行为之间的差异。如上所述指定编码是一种解决方案。最好升级Python安装程序。当前版本为3.9.5。

3
最好不要依赖于改变默认设置,总是要指定编码。 - Mark Tolonen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接