将值浮动到文件中。当我尝试使用.write()时,它将输入作为字符串。
with open('C:/Python35/sample.txt', 'w') as f:
data = [70, 60, 55, 75, 95, 90, 80, 80, 85, 100]
for i in data:
f.write('%d \n' % i)
with open('C:/Python35/sample.txt', 'r', encoding='utf-8') as g:
data = g.readlines()
print(data)
如果我运行这个,我可以得到如下的结果。
['70 n', '60 n', '55 n', '75 n', '95 n', '90 n', '80 n', '80 n', '85 n', '100 n']
它是字符串列表,而不是int值。(还想知道为什么'数据'列表中有' n'!)
你可能有你的sample.txt文件格式如下:
70
60
55
75
95
90
80
80
85
100
该文件中没有任何内容可以记住您插入的值是一个整数,因为它是一个文本文档(.txt),它也不会对这些数字进行编码。至于n,每个数字都在它自己的行上,这意味着必须有一些表示换行符的字符,因此是n换行符。
如果你在代码中查看这一行:
f.write('%d n' %i)
你是n在每个数字之后明确写的。如果要从文本文件中读取数字并使它们为整数,则必须将字符串值显式转换为其整数表示形式。您可以将该逻辑重写为:
with open("sample.txt", "r", encoding="utf-8") as g:
... data = list(map(int, g.readlines()))
...
data
[70, 60, 55, 75, 95, 90, 80, 80, 85, 100]
它将int类型映射到返回的列表的每个值,g.readlines()然后再将map对象转换为a list。并且,如果您想知道,请int忽略每行中的空格(空格和换行符)。
int("70 n")
70
type(int("60 n"))
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。