Mam plik (pozwala zadzwonić do tego plik_a), z którego wyodrębniam 5 linii (jak więc)
pppppppp
qqqqqqqq
rrrrrrrr
ssssssss
tttttttt
Teraz chcę wstawić te pięć linii na początku 10 innych plików (pozwala na nich zadzwonić 1..10).
Chcę otworzyć File_a (jeden z liniami 5), a następnie otwórz jeden za pomocą jednego 10 plików i włóż te linie na początku tych plików.
W tej chwili wykonuję następujące czynności:
1) Open File_a, wyciągnij pierwszy z pięciu linii (PPPPPPPP) Zapisz do nowego pliku
2) Następnie druga linia .... Ja.
3) Otwórz plik 1 i skopiuj wszystkie linie, a następnie napisz do nowego pliku otwartego w kroku 1
4) Zamknij wszystkie pliki ... ..repeat
Skończę więc z 10 nowymi plikami, abym raczej przechowywać 5 linii wyodrębnionych do istniejącego pliku, a także uniknąć otwierania i zamykania file_a 10times!
Jakie narzędzie mogę używać do przechowywania 5 linii w pamięci podczas robienia tego bez ich zniekształcania?
Dziękuję Ci
2 odpowiedzi
Umieść pliki na liście i iteruj na liście:
file_list = ["foo.txt","bar.txt"...]
with open("file_A.txt","r+") as f: # open once
# extract lines
extracted = [] # put data here
for f in file_list:
with open(f, "r+") as out:
lines = out.readlines()
lines[0:0] = extracted # add data at start
out.seek(0)
out.write("".join(lines)) # write new data
Nie jestem pewien, czy potrzebujesz danych ponownie napisanych na miejscu, ale jeśli nie, możesz użyć (nieświadomie):
from itertools import islice, chain
with open('filea.txt') as fin:
first5 = list(islice(fin, 5)) # or whatever criteria to get the 5
for filename in ['file1.txt', 'file2.txt', 'file3.txt']: #etc
with open(filename) as fin, open(filename + '.out') as fout:
fout.writelines(chain(first5, fin))
Podobne pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.