Вычисление расстояния от координат x и y из текстового файла - PullRequest
0 голосов
/ 06 июня 2018

Я изучаю Python 3 и у меня есть вопрос.

У меня есть текстовый файл 'test.txt', и его содержимое:

1, 2

3, 4

5, 7

@@@@@@@ 

10, 11

19, 20 

Число с левой стороны является координатой x, а число с правой стороны -y координата.Я хочу получить расстояние из шести цифр и расстояние от четырех цифр ниже '@@@@@@@'.Так как формула расстояния имеет види рассчитать общее расстояние от трех пар.Например, total_distance = SQRT ((4-2) ^ 2 + (3-1) ^ 2) + SQRT ((7-4) ^ 2 + (5-3) ^ 2) .

После этого я хочу получить (10, 11) и (19, 20).Что меня смущает, так это то, как я могу пропустить '@@@@@@@' и извлечь числа в виде координат x и y.

Я начал писать код, подобный этому:

with open("text.txt") as filestream:
    for line in filestream:
        currentline = line.split(",")

Я пытаюсь выяснить, как решить эту проблему.Можете ли вы помочь мне или дать совет, что мне делать?

1 Ответ

0 голосов
/ 07 июня 2018

Попробуйте использовать регулярное выражение:

import re

with open("text.txt") as f:
    arr = [[int(l.split(',')[0]), int(l.split(',')[1])] for l in f.readlines() if re.match('\d+, \d+', l)]

И если вам нужно разделить части:

import re

arr = []
with open("text.txt") as f:
    parts = re.compile('@+').split(f.read())
    for part in parts:
        arr.append([[int(l.split(',')[0]), int(l.split(',')[1])] for l in part.split('\n') if re.match('\d+, \d+', l)])

И все это не в порядке, если вы уверены, что файл существует иимеет этот конкретный формат.

PS: Я не могу понять, что вы пытаетесь сделать с этими цифрами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...