Jak wpisać coś do pliku tekstowego w konkretnym jego miejscu? Python 3

0

Cześć, mam problem związany z wpisywaniem do pliku tekstowego danego tekstu w konkretnym miejscu w pliku za pomocą funkcji plik.write("tekst"). Wiem, że żeby edytować plik tekstowy to muszę go otworzyć w trybie "w' lub 'a' tylko w pierwszym przypadku cała zawartość pliku jest czyszczona (a tego nie chcę), a w drugim mogę coś dopisywać tylko na końcu. Załóżmy, że plik składa się z 10 linii, a ja w piątej linii chcę wstawić enter-a i tam jakiś tekst - i pytanie: jak to zrobić? Przeszukałam już internet, wszędzie piszą tylko o trybach 'w' i 'a' jeśli chodzi o edycję pliku. Na forum też nie znalazłam interesującego mnie tematu. Szukałam również w książce dot. Pyhton-a - wszędzie to samo. Może istnieje na to jakiś inny sposób? Tylko nie wiem już czego szukać i gdzie :/

0

A Masz na tyle pamięci, żeby wgrać plik do listy (na przykład) i modyfikować go w programie, a potem zapisać?

0

Tak, mam tyle miejsca, ale czy jest tak funkcja, która wstawi mi element w sam środek listy, a reszta elementów automatycznie przesunie się dalej o jedno miejsce czy trzeba napisać do tego kod?

0

Jak Będziesz miał Pythonową listę, to spoko, są metody:
https://docs.python.org/3/tutorial/datastructures.html

0

Czyli nie da się tego zrobić nie pracując na liście czy istnieje może jeszcze jakiś inny sposób? (+jestem kobietą - to tak odnośnie adresowania wypowiedzi do mnie, bo dziwnie mi się czyta odpowiedzi jak do mężczyzny:)

0

Jeżeli nie zamierzasz czytać treści pliku to jedyne co możesz zrobić z plikiem to: 1) dopisanie nowych danych do pliku na jego końcu albo 2) nadpisanie istniejących danych, przy czym tu warto wyróżnić, że nadpisywanie to nie jest to samo co wstawianie.

Nadpisywanie sprawia, że dane które wstawiasz zastępują dane wcześniejsze. Jeśli dane wcześniejsze są potrzebne wówczas musisz nadać plikowi odpowiednią strukturę, która ma przygotowane odpowienie luki do wypełnienia. Te luki muszą mieć pewien znany rozmiar, a Twój program wprowadzając dane w te luki musi odpowiednio kalkulować i pilnować zajmowany rozmiar, przy czym ilość znaków to nie to samo co rozmiar jaki w rzeczywistości zajmują.

Jak widzisz plik tekstowy nie zawsze jest tak prosty jak się wydaje. Łatwiej byłoby wskazać lepsze rozwiązania gdybyś określiła jaki ludzki problem próbujesz rozwiązać.

0

Problem jest taki jak w załączniku. Mój zamysł jest taki, że chcę dołączać po jednym słowie do wynikowego pliku. A moim wynikowym plikiem jest, od pierwszego łączenia dwóch plików, jeden z plików wejściowych, który staje się plikiem wynikowym i dołączam do niego kolejne słowa z reszty podanych plików, tylko, że nie wiem czy mogę w jakiś sposób dostać się do konkretnej linii w pliku i wpisać tam słowo. Czy seek() w trybie otwarcia "a+" załatwiłby sprawę? Czy trzeba szukać innego rozwiązania?

1

Zadanie Ci nie narzuca, aby modyfikować plik wejściowy. Po prostu na podstawie dwóch plików wejściowych stwórz plik wyjściowy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1