Python - przycisk, otwieranie pliku w edytorze tekstowym

Odpowiedz Nowy wątek
2015-02-04 11:30
0

Witam,

zacząłem pisać sobie edytor tekstowy w Pythonie, taki prymitywny, dla testów. Stanąłem bardzo niedaleko początku i pojawił się problem.

from tkFileDialog import askopenfilename


def onOpen(self):
        filename = askopenfilename()
        if filename:
            alltext = self.gettext()
         __   open(filename, 'w').read(alltext)__  <--- tu pojawił się problem, nie mogę pobrać tekstu z pliku.

Czy mógłby ktoś mnie nakierować na dobrą drogę?

Dzięki

Pozostało 580 znaków

2015-02-04 11:44
0

https://docs.python.org/3/tut[...].html#methods-of-file-objects

read() przyjmuje jako parametr wielkość tekstu, albo nie przyjmuje nic, wtedy czyta całość.

Btw nigdzie nie zapisujesz wartości zwracanej przez read(), więc raczej jej na oczy nie zobaczysz ;p

Pozostało 580 znaków

2015-02-04 12:05
0
 alltext = open(filename, 'w')
            print alltext.read()

tak też nie działa. zapisuję w zmiennej alltext i odczyt bez parametru jak mówiłeś i dalej kwiczy. ;/
coś nie chce otworzyć pliczku

print alltext.read()
IOError: File not open for reading

Pozostało 580 znaków

2015-02-04 12:21
2

'w' to jest czytanie (reading), czy pisanie (writing)?


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 1x, ostatnio: bogdans, 2015-02-04 12:22

Pozostało 580 znaków

2015-02-04 12:56
0

a no writing :P racja, zmieniłem i jest prawie cacy, bo wypisuje mi w konsoli zamiast w ramce :P

Pozostało 580 znaków

2015-02-04 13:18

No to raczej logiczne skoro używasz print. Musisz użyć do tego metod TkIntera skoro go używasz :D

Btw, po zakończeniu pracy nad plikiem powinieneś go zamknąć używając alltext.close(), albo użyć instrukcji with, która zamknie plik za ciebie automatycznie.

edytowany 1x, ostatnio: Wizzie, 2015-02-04 13:20

Pozostało 580 znaków

2015-02-04 22:09
0

Dzięki wielkie :) zadanie ukończone :P

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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