The file looks like this:
1, a b
2, c d
3, e f
my current code
b = open('file.txt', 'r')
c = b.readlines()
regels = len(c)
print(regels)
I got the numbers of lines but still need biggest number + on which line it is.
asked Sep 20, 2016 at 18:27
2
So you are just looking to find the biggest number in the first column of the file? This should help
b = open('file.txt', 'r')
c = b.readlines()
regels = len(c)
print(regels)
max = 0
for line in b.readlines():
num = int(line.split(",")[0])
if (max < num):
max = num
print(max)
# Close file
b.close()
answered Sep 20, 2016 at 18:37
AliAli
6331 gold badge9 silver badges20 bronze badges
5
This is how I’d go about doing it.
max_num = 0
with open('file.txt', 'r') as data: # use the with context so that the file closes gracefully
for line in data.readlines(): # read the lines as a generator to be nice to my memory
try:
val = int(line.split(",")[0])
except ValueError: # just incase the text file is not formatted like your example
val = 0
if val > max_num: # logic
max_num = val
print max_num #result
answered Sep 20, 2016 at 18:43
reticentrootreticentroot
3,6022 gold badges22 silver badges39 bronze badges
You need loop over each line in file, parse each line and find the largest number.
I do not quite understand how the numbers are stored in your file. Just assuming that in each line, the first field are numeric and separate with others (non-numeric) by ','
. And I assume all numbers are integer.
ln = 0
maxln = 0
maxn = 0
with open(filename, 'r') as f:
line = f.next()
if line:
ln = 1
maxln = 1
maxn = int(line.split(",")[0].strip())
else:
raise Exception('Empty content')
for line in f:
ln += 1
cur = int(line.split(",")[0].strip())
if cur > maxn:
maxn = cur
maxln = ln
ln is used to record current line number, maxn is used to record current maximum number, and maxln is used to record current maximum number location.
One thing you need to do is fetch the first line to initialize these variables.
answered Sep 20, 2016 at 18:47
rojeeerrojeeer
1,9811 gold badge11 silver badges13 bronze badges
None of the answers give you the line of the max number so I’ll post some quick code and refine later
max_num = 0
line_count = 0
with open('file.txt', 'r') as infile:
for line in infile:
number = int(line.split(',')[0])
if number > max_num:
max_num = number
line_num = line_count
line_count += 1
print (max_num)
print (line_num)
answered Sep 20, 2016 at 18:51
roganjoshroganjosh
12.5k4 gold badges29 silver badges46 bronze badges
3
- Read line
- Split it on basis of comma
- Append first element to temp list.
Once complete reading of file is done,
- To get maximum number, just use
max
function on temp list. - Since file is read line by line sequentially and appending number from line to temp list, to get line number on which maximum number is present, just find the index of max number in temp list and increment it by one since list index starts with zero.
P.S : Check last three print statements
Code:
num_list = []
with open('master.csv','r')as fh:
for line in fh.readlines():
num_list.append(int((line.split(','))[0]))
print num_list
print "Max number is -" ,max(num_list)
print "Line number is - ", (num_list.index(max(num_list)))+1
Output:
C:Usersdinesh_pundkarDesktop>python c.py
[1, 2, 3]
Max number is - 3
Line number is - 3
C:Usersdinesh_pundkarDesktop>
answered Sep 20, 2016 at 18:42
Dinesh PundkarDinesh Pundkar
4,1301 gold badge22 silver badges36 bronze badges
4
Iterate through the file and keep track of the highest number you’ve seen and the line you found it on. Just replace this with the new number and new line number when you see a bigger one.
b = open('file.txt', 'r')
max = -1
lineNum = -1
line = b.readline()
index = 0
while(line):
index+=1
newNum = line[0]
if(newNum>max):
max = newNum
lineNum = index
line = b.readline()
print lineNum,max,index
max is your highest number, lineNum is where it was, and index is the number of lines in the file
answered Sep 20, 2016 at 18:42
SilentLupinSilentLupin
65810 silver badges16 bronze badges
2
Раз всё же начали давать ответы, то с использованием Java 8 можно поступить так:
public static void main(String[] args)
{
int[] array = null;
try (BufferedReader in = new BufferedReader(new FileReader("chisla.txt")))
{
array = in.lines().mapToInt(Integer::parseInt).toArray();
}
catch (IOException | NumberFormatException e)
{
e.printStackTrace();
}
if (array != null)
{
int max = Integer.MIN_VALUE;
for (int i = 0; i < array.length; i++)
{
if (max < array[i])
{
max = array[i];
}
}
System.out.println("Max: " + max);
}
}
Все строки из файла, а точнее поток строк Stream<String>
, возвращаемый in.lines()
, привести к потоку int
-чисел (IntStream
, возвращаемый mapToInt
) с помощью Integer.parseInt
, после чего этот поток преобразовать в массив int[]
с помощью toArray()
.
Также нужно не забывать закрывать BufferedReader
после чтения данных. В представленном коде это делается с помощью конструкции try-with-resources.
А вообще, максимум можно находить и с помощью самого IntStream
:
public static void main(String[] args)
{
try (BufferedReader in = new BufferedReader(new FileReader("chisla.txt")))
{
OptionalInt optionalMax = in.lines().mapToInt(Integer::parseInt).max();
if (optionalMax.isPresent())
{
System.out.println("Max: " + optionalMax.getAsInt());
}
}
catch (IOException | NumberFormatException e)
{
e.printStackTrace();
}
}
0 / 0 / 0 Регистрация: 13.07.2015 Сообщений: 34 |
|
1 |
|
Найти наибольшее значение из чисел записанных в файл17.08.2015, 11:12. Показов 8592. Ответов 17
В текстовом файле записана непустая последовательность вещественных чисел, разделенных пробелами. Найти наибольшее из этих чисел. Помогите, люди. Писать надо через ifstream и ofstream (необязательно, чтобы были оба).
0 |
isobo531 50 / 49 / 29 Регистрация: 11.11.2014 Сообщений: 332 |
||||
17.08.2015, 11:27 |
2 |
|||
Добавлено через 1 минуту
0 |
zss Модератор 13100 / 10373 / 6206 Регистрация: 18.12.2011 Сообщений: 27,741 |
||||
17.08.2015, 11:32 |
3 |
|||
isobo531, в Вашем коде есть недостатки.
0 |
KrYpToDeN 3 / 3 / 1 Регистрация: 10.01.2015 Сообщений: 69 |
||||
17.08.2015, 11:33 |
4 |
|||
Решение
В папке с файлом должен быть файлик Float.txt c дробными числами через пробел.
1 |
0 / 0 / 0 Регистрация: 13.07.2015 Сообщений: 34 |
|
17.08.2015, 11:35 [ТС] |
5 |
zss, а вы можете исправить код выше, чтобы был без недостатков? Просто я даже этого не знаю
0 |
3 / 3 / 1 Регистрация: 10.01.2015 Сообщений: 69 |
|
17.08.2015, 11:35 |
6 |
как-то сложно..зачем массив?
0 |
50 / 49 / 29 Регистрация: 11.11.2014 Сообщений: 332 |
|
17.08.2015, 11:35 |
7 |
Ошибся.. Не так понял..
0 |
Модератор 13100 / 10373 / 6206 Регистрация: 18.12.2011 Сообщений: 27,741 |
|
17.08.2015, 11:39 |
8 |
KrYpToDeN, Та же ошибка. Не сработает, если все числа отрицательные.
0 |
0 / 0 / 0 Регистрация: 13.07.2015 Сообщений: 34 |
|
17.08.2015, 11:42 [ТС] |
9 |
KrYpToDeN, ошибка в строке 10 D:QtProjectstxtfilesV1Z2main.cpp:6: предупреждение: unused parameter ‘argc’ [-Wunused-parameter] int _tmain(int argc, _TCHAR* argv[])
0 |
3 / 3 / 1 Регистрация: 10.01.2015 Сообщений: 69 |
|
17.08.2015, 11:48 |
10 |
zss, всё сработает) Не могу картинку вставить( Из чисел -1.3 -0.23 -1.1 -1.2 Верно же, вроде) Добавлено через 3 минуты
1 |
0 / 0 / 0 Регистрация: 13.07.2015 Сообщений: 34 |
|
17.08.2015, 11:50 [ТС] |
11 |
KrYpToDeN, наверное ошибка изза Qt…ты же в MVS писал?
0 |
3 / 3 / 1 Регистрация: 10.01.2015 Сообщений: 69 |
|
17.08.2015, 11:51 |
12 |
EgorVans, да) в QT я хз, как там.. Перекинь просто всё содержимое из моей функции _tmain в функцию main в QT. И библиотеки не забудь)
0 |
0 / 0 / 0 Регистрация: 13.07.2015 Сообщений: 34 |
|
17.08.2015, 11:57 [ТС] |
13 |
KrYpToDeN, всегда пишет что файл не может открыться..я не понимаю почему: и путь к файлу указывал и без пути в папку с заданием клал….все равно он его не видит
0 |
Модератор 13100 / 10373 / 6206 Регистрация: 18.12.2011 Сообщений: 27,741 |
|
17.08.2015, 15:02 |
14 |
Путь надо указывать в виде
0 |
Mr.X 3222 / 1749 / 435 Регистрация: 03.05.2010 Сообщений: 3,867 |
||||
18.08.2015, 02:49 |
15 |
|||
1 |
0 / 0 / 0 Регистрация: 13.07.2015 Сообщений: 34 |
|
18.08.2015, 10:37 [ТС] |
16 |
Mr.X, не робит..всегда знаки восклицательные выдает
0 |
3222 / 1749 / 435 Регистрация: 03.05.2010 Сообщений: 3,867 |
|
18.08.2015, 10:49 |
17 |
всегда знаки восклицательные выдает Сообщает, что не найден входной файл. Создайте и заполните текстовый файл с именем f.
1 |
0 / 0 / 0 Регистрация: 13.07.2015 Сообщений: 34 |
|
18.08.2015, 10:52 [ТС] |
18 |
KrYpToDeN, спасибо! я все исправил и работает)
0 |
Формулировка задачи:
в текстовом файле data.txt записано произвольное количество вещественных чисел через пробел. Написать программу, которая находит максимальное число и выводит его в консоль.
Код к задаче: «Найти в файле data.txt максимальное число и вывести в консоль»
textual
string[] strs; using(StreamReader sr=new StreamReader("data.txt")) { strs = sr.ReadToEnd().Split(' '); } double max = Convert.ToDouble(strs[0]); foreach (string s in strs) if (Convert.ToDouble(s) > max) max = Convert.ToDouble(s);
Полезно ли:
7 голосов , оценка 4.857 из 5
ВАРИАНТ 1 Текстовый файл состоит из символов арабских цифр (0, 1, 2, 3, ….9). Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых нет символов 0, стоящих рядом. Для выполнения этого задания следует написать программу. |
Решение и ответ f = open(’24_var_1-4.txt’) |
ВАРИАНТ 2 Текстовый файл состоит из символов арабских цифр (0, 1, 2, 3, ….9). Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых нет трех символов 0, стоящих рядом. Для выполнения этого задания следует написать программу. |
Решение и ответ f = open(’24_var_1-4.txt’) for i in range(2, len(s)): print(m) Ответ: 7684 |
ВАРИАНТ 3 Текстовый файл состоит из символов арабских цифр (0, 1, 2, 3, ….9). Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых нет символов 1 и 2, стоящих рядом. Для выполнения этого задания следует написать программу. |
Решение и ответ f = open(’24_var_1-4.txt’) for i in range(1,len(p)): print(m) Ответ: 532 |
ВАРИАНТ 4 Текстовый файл состоит из символов арабских цифр (0, 1, 2, 3, ….9). Определите максимальное количество идущих подряд символов в прилагаемом файле, среди которых нет символов 1 и 2, а также 1 и 3, стоящих рядом. Для выполнения этого задания следует написать программу. |
Решение и ответ f = open(’24_var_1-4.txt’) for i in range(1,len(p)): print(m) Ответ: 339 |
ВАРИАНТ 5 Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальное количество идущих подряд символов, расположенных в алфавитном порядке (возможно с повторением символов). Для выполнения этого задания следует написать программу. |
Решение и ответ f=open(’24_var_5-9.txt’) for i in range(1,len(p)): print(m) Ответ: 15 |
ВАРИАНТ 6 Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальное количество идущих подряд символов, расположенных в обратном алфавитном порядке (возможно с повторением символов). Для выполнения этого задания следует написать программу. |
Решение и ответ f=open(’24_var_5-9.txt’) for i in range(1,len(p)): print(m) Ответ: 19 |
ВАРИАНТ 7 Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых нет символа Z. Для выполнения этого задания следует написать программу. |
Решение и ответ f=open(’24_var_5-9.txt’) for i in p: print(m) Ответ: 34 |
ВАРИАНТ 8 Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых нет символа Z. Для выполнения этого задания следует написать программу. |
Решение и ответ f=open(’24_var_5-9.txt’) p=f.readline() print(m) Ответ: 43 |
ВАРИАНТ 9 Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых символ Z встречается не более двух раз. Для выполнения этого задания следует написать программу. |
Решение и ответ f=open(’24_var_5-9.txt’) print(m) Ответ: 50 |
ВАРИАНТ 10 Текстовый файл состоит не более чем из 106 символов арабских цифр (0, 1, 2, …, 9). Определите максимальное количество идущих подряд одинаковых цифр. Для выполнения этого задания следует написать программу. |
Решение и ответ f=open(’24_var_10-18.txt’) p=f.readline() print(m) Ответ: 47 |
ВАРИАНТ 11 Текстовый файл состоит не более чем из 106 символов арабских цифр (0, 1, 2, …, 9). Определите максимальное количество идущих подряд цифр, среди которых каждые две соседние различны . Для выполнения этого задания следует написать программу. |
Решение и ответ f=open(’24_var_10-18.txt’) p=f.readline() for i in range(1,len(p)): print(m) Ответ: 120 |
ВАРИАНТ 12 Текстовый файл состоит не более чем из 106 символов арабских цифр (0, 1, 2, …, 9). Определите максимальное количество идущих подряд цифр, расположенных в строго возрастающем порядке. Для выполнения этого задания следует написать программу. |
Решение и ответ f=open(’24_var_10-18.txt’) p=f.readline() for i in range(1,len(p)): print(m) Ответ: 8 |
ВАРИАНТ 13 Текстовый файл состоит не более чем из 106 символов арабских цифр (0, 1, 2, …, 9). Определите максимальное количество идущих подряд цифр, расположенных в строго убывающем порядке. Для выполнения этого задания следует написать программу. |
Решение и ответ f=open(’24_var_10-18.txt’) p=f.readline() for i in range(1,len(p)): print(m) Ответ: 7 |
ВАРИАНТ 14 Текстовый файл состоит не более чем из 106 символов арабских цифр (0, 1, 2, …, 9). Определите максимальное количество идущих подряд цифр, расположенных в невозрастающем порядке. Для выполнения этого задания следует написать программу. |
Решение и ответ f=open(’24_var_10-18.txt’) p=f.readline() for i in range(1,len(p)): print(m) Ответ: 47 |
ВАРИАНТ 15 Текстовый файл состоит не более чем из 106 символов арабских цифр (0, 1, 2, …, 9). Определите максимальное количество идущих подряд цифр, расположенных в неубывающем порядке. Для выполнения этого задания следует написать программу. |
Решение и ответ f=open(’24_var_10-18.txt’) p=f.readline() for i in range(1,len(p)): print(m) Ответ: 49 |
ВАРИАНТ 16 Текстовый файл состоит не более чем из 106 символов арабских цифр (0, 1, 2, …, 9). Определите максимальное количество идущих подряд нечетных цифр. Для выполнения этого задания следует написать программу. |
Решение и ответ f=open(’24_var_10-18.txt’) p=f.readline() for i in s: print(m) Ответ: 17 |
ВАРИАНТ 17 Текстовый файл состоит не более чем из 106 символов арабских цифр (0, 1, 2, …, 9). Определите максимальное количество идущих подряд четных цифр. Для выполнения этого задания следует написать программу. |
Решение и ответ f=open(’24_var_10-18.txt’) p=f.readline() for i in s: print(m) Ответ: 50 |
ВАРИАНТ 18 Текстовый файл состоит не более чем из 106 символов арабских цифр (0, 1, 2, …, 9). Определите максимальное количество идущих подряд нечетных цифр, расположенных в неубывающем порядке. Для выполнения этого задания следует написать программу. |
Решение и ответ f=open(’24_var_10-18.txt’) s=f.readline() for i in range(1,len(s)): print(m) Ответ: 8 |
ВАРИАНТ 19 Текстовый файл состоит не более чем из 106 символов I, V и X. Сколько раз в файле встречается последовательность цифр, формирующая римскую цифру XV? Для выполнения этого задания следует написать программу. |
Решение и ответ f=open(’24_var_19-20.txt’) for i in range(1, len(s)): # или так # или так Ответ: 111177 |
ВАРИАНТ 20 Текстовый файл состоит не более чем из 106 символов I, V и X. Сколько раз в файле встречается последовательность цифр, формирующая римскую цифру XVI? Для выполнения этого задания следует написать программу. |
Решение и ответ f=open(’24_var_19-20.txt’) Ответ: 36713 |