Добавление столбца чисел в качестве первого столбца в уже существующий текстовый файл с числами с помощью PYTHON

#python #arrays #numpy #text-files

#python #массивы #numpy #текстовые файлы

Вопрос:

Я пытаюсь добавить столбец возрастающих кратных 4, скажем (4 8 12 16), к уже существующим данным чисел ТЕКСТОВОГО файла. Однако, когда я пробую код [упомянутый ниже], данные столбца добавляются в конец данных существующего текстового файла. Я не могу использовать PANDAS, потому что в программном обеспечении Abaqus его нет.

Вот существующие данные в примере примера текстового файла (я использовал запятую здесь для разделения целых чисел):

53 , 25

55 , 39

78 , 87

32 , 17

Ожидаемый результат:

4 , 53 , 25

8 , 55 , 39

12 ,78 , 87

16 ,32 , 17

Вот код

 import numpy as np

# defining the numbers i want to add to the text file

x1 = np.array(range(4,20,4)).tolist()

# opening the existing data file using **append** format

exisiting_data = open('data.txt', 'a')

# looping through the numbers to add to the text file

for eachitem in x1:

    exisiting_data.write(str(eachitem) 'n')

exisiting_data.close()
 

вывод:
Когда я делаю это, я получаю вывод в виде

53 , 25

55 , 39

78 , 87

32 , 17

4

8

12

16

Я думаю, это просто для многих из вас. Пока я новичок. Спасибо за ваши предложения и ответы. Спасибо

Ответ №1:

Вы не можете напрямую записать свой ряд в качестве первого столбца в вашем текстовом файле. Что вы можете сделать, так это создать второй файл и записать свои ряды (4, 8, 12) данные из вашего первого файла во второй.

Комментарии:

1. existing_ data_file = открыть(«data.txt » , » р») …………. numbers_file = открыть(«numbers.txt » , » ш»)…………. для строки в существующем_ файле данных: numbers_file. запись (строка)

2. Я попробовал ваши предложения и написал этот код. Но, к сожалению, данные во втором файле стираются из-за формата ‘w’. Пожалуйста, помогите мне написать код в вашем уме. Пожалуйста

3. Я думаю, вы можете попробовать это with open("two.txt", "w") as f: lines = open("one.txt").readlines() x = 4 for line in lines: f.write(str(x) "," line)