normalnie uniknąć odczytywania plików tak:Memory-skuteczny sposób iteracyjne nad częścią dużego pliku
with open(file) as f:
list_of_lines = f.readlines()
i korzystać z tego typu kodu zamiast.
f = open(file)
for line in file:
#do something
Chyba mam tylko do iteracji przez kilka wierszy w pliku (i wiem, które linie te są), to myślę, że jest łatwiejsza do podjęcia Plastry list_of_lines. Teraz to wróciło, by mnie ugryźć. Mam plik OGROMNY (odczytanie go do pamięci nie jest możliwe), ale nie muszę powtarzać we wszystkich wierszach tylko kilku z nich. Mam kod zakończony, który znajduje się w miejscu, w którym znajduje się moja pierwsza linia i znajduje się, ile kolejnych linii muszę edytować. Po prostu nie mam pomysłu na pisanie tej pętli.
n = #grep for number of lines
start = #pattern match the start line
f=open('big_file')
#some loop over f from start o start + n
#edit lines
EDYCJA: mój tytuł mógł prowadzić do debaty, a nie odpowiedzi.
co masz na myśli przez "#edit lines", zrobić coś z liniami takimi jak przechowywanie ich na liście lub zapisywanie ich do innego pliku lub modyfikowanie tych linii w dużym pliku? – timgeb
W jaki sposób znajdujesz pierwszy wiersz, a po nim liczbę linii, które chcesz edytować? Musisz to przeczytać od początku, prawda? – dano
Zamierzam edytować linie w pliku, a następnie drukować rzecz przed i po typie w osobnym pliku. Będę drukował tylko linie, które zmienię, na inny plik. – Ajay