Не используйте match_parent
для высоты для просмотра вашего элемента. Один элемент заполняет весь экран вертикально, поэтому вы не видите другого.
Простым способом добавления данных в середине файла является использование модуля fileinput
:
import fileinput
for line in fileinput.input(r'C:\Sanity_Automation\....tcl', inplace=1):
print line, # preserve old content
if x in line:
print data # insert new data
Из fileinput
docs :
Необязательная фильтрация в месте: если аргумент ключевого слова inplace = 1 передан в fileinput.input () или в конструктор FileInput, файл перемещается в файл резервной копии и стандартный вывод направляется на входной файл (если файл с тем же именем, что и файл резервной копии уже существует, он будет заменен молча). Это позволяет написать фильтр, который переписывает свой входной файл на место. Если задан параметр резервного копирования (обычно как backup = '.'), Он указывает расширение для файла резервной копии, и файл резервной копии остается вокруг;
blockquote>Для вставки данных в файл
filename
при чтении без использованияfileinput
:import os from tempfile import NamedTemporaryFile dirpath = os.path.dirname(filename) with open(filename) as file, \ NamedTemporaryFile("w", dir=dirpath, delete=False) as outfile: for line in file: print >>outfile, line, # copy old content if x in line: print >>outfile, data # insert new data os.remove(filename) # rename() doesn't overwrite on Windows os.rename(outfile.name, filename)
вы не можете все, что вы можете сделать, это прочитать в файле, вставить нужный текст и записать его обратно
with open("some_file","r") as f:
data = f.read()
some_index_you_want_to_insert_at = 122
some_text_to_insert = "anything goes here"
new_data = data[:some_index_you_want_to_insert_at] + some_text_to_insert + data[some_index_you_want_to_insert_at:]
with open("some_file","w") as f:
f.write(new_data)
print "all done!"
На самом деле ваш метод работает, но ваш fout открыт в режиме добавления. Вот почему вы можете писать только в конце. Вот рабочий пример.
# creating a file for reference
ff = open("infiletest","w")
pos_file = {}
for i in range(3):
pos_file[i] = ff.tell()
ff.write("%s 21/1/1983\n" % i)
ff.close()
# modify the second line
ff = open("infiletest","r+")
ff.seek(pos_file[2])
ff.write("%s 00/0/0000\n" % 2)
ff.close()
Обратите внимание, что вы перезаписываете содержимое файла.