将值浮动到文件中。 当我尝试使用.write()时,它将输入作为字符串。 我想它确实是Python的基础,但我是新手。 希望你们不要对这个问题生气:D
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”!)
答案 0 :(得分:1)
您可能将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
对象再次转换为list
。而且,如果您想知道,int
会像每行一样忽略空格(空格和换行符)。
>>> int("70 \n")
70
>>> type(int("60 \n"))
<class 'int'>
答案 1 :(得分:0)
您在控制台上看到的\n
仅仅是Python的默认repr
字符串表示法。如果要将数据行写入文件并逐行打印文件,可以执行此操作(我所做的只是遍历列表并一次打印一行,而不是打印数组):
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()
for line in data:
print(line)
答案 2 :(得分:0)
方法 readlines()读取直到使用readline()结束EOF并返回包含这些行的列表。
使用记事本o从提示符下执行type sample.txt