Не удается получить данные из разделения и обрезки пробелов - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь прочитать данные, а затем разделить их. Всего существует 4 столбца с допустимым значением data(numbers), поэтому я использовал strip() и split(maxsplit=4) для обрезки пробелов. Я не могу получить весь набор данных, вместо этого я вижу только один напечатанный «чек» (что означает, что что-то не получается). Однако я не могу понять, что не так с этим кодом. Пожалуйста, спасите меня.

THIS_FOLDER = os.path.dirname(os.path.abspath(__file__))
filename = os.path.join(THIS_FOLDER, '1D_Profile.txt')

x, y, void_1, void_2 = [], [], [], []

with open(filename) as data:
for line in data:
    line = line.strip()
    x = x.append(float(line.split(maxsplit=4)[0]))
    y = y.append(float(line.split(maxsplit=4)[1]))
    void_1 = void_1.append(float(line.split(maxsplit=4)[2]))
    void_2 = void_2.append(float(line.split(maxsplit=4)[-1]))
    print('check')

Это первые 6 строк моих исходных данных (сохраненных в формате txt)

 1.0536544e+00   0.0000000e+00   1.0000000e+00   1.0042425e+00
 1.0526175e+00   0.0000000e+00   1.0000000e+00   1.0042427e+00
 1.0515805e+00   1.1696509e+00   1.0000000e+00   1.0042429e+00
 1.0505435e+00   2.7503487e+00   1.0000000e+00   1.0042429e+00
 1.0495065e+00   4.1166442e+00   1.0000000e+00   1.0042429e+00
 1.0484695e+00   5.9161777e+00   1.0000000e+00   1.0042429e+00

1 Ответ

0 голосов
/ 26 марта 2020

Наконец-то я понял это сам, ответ был ... Оригинал:

    x = x.append(float(line.split(maxsplit=4)[0]))
    y = y.append(float(line.split(maxsplit=4)[1]))
    void_1 = void_1.append(float(line.split(maxsplit=4)[2]))
    void_2 = void_2.append(float(line.split(maxsplit=4)[-1]))

Я изменил следующим образом:

    x.append(float(line.split(maxsplit=4)[0]))
    y.append(float(line.split(maxsplit=4)[1]))
    void_1.append(float(line.split(maxsplit=4)[2]))
    void_2.append(float(line.split(maxsplit=4)[-1]))

Однако я не могу понять, почему это решает проблема. Кто-нибудь может объяснить?

...