Я пытаюсь написать функцию, которая берет строку (в виде файла), и в этом файле она содержит числа (целые числа и плавающие точки) на отдельных строках. Затем я хочу напечатать числа в файле, который больше нуля. Я довольно новичок в python, поэтому у меня есть небольшая проблема с выходом на выход. до сих пор у меня есть:Как читать поплавки и целые числа в файле?
def getPositive(filename):
infile = open(filename, 'r')
content = (infile.read())
infile.close()
for number in content:
if number <= 0:
print (content.remove(number))
и я получаю ошибку
>>> getPositive('nums1.txt')
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
getPositive('nums1.txt')
File "/Users/XXXX/Desktop/test.py", line 8, in getPositive
if number <= 0:
TypeError: unorderable types: str() <= int()
Кроме того, в моем файле у меня есть:
59
-3.2
12.99
-1
45.3
20
и я хочу его только напечатать:
59
12.99
45.3
20
Может ли сома пожалуйста, объясните мне, что я делаю неправильно, и что мне нужно сделать, чтобы исправить это?
поэтому, когда я добавил infile.close() было то, что неправильно, или же с помощью заявления, только делает это аккуратнее? – M15671
Вам не нужно использовать 'infile.close()' вообще при использовании 'with'. См. Http://preshing.com/20110920/the-python-with-statement-by-example –
возможно использовать 'print line,' вместо float, который сохраняет intness и новые строки. – sleeplessnerd