Oto część skryptu w Pythonie, który zapisuje wartości w pliku tekstowym:
if save_key.positive:
with open(path + "save.txt", 'w') as savefile:
savefile.write("{0}".format(str(value)))
Ten skrypt może operować tylko na pliku w folderze z grą jeśli folder jest na pulpicie. Ale po zainstalowaniu gry, folder jest w lokalizacji (C:/Program Files/…) i już nie można operować na pliku, bo jest odmowa dostępu. Więc chciałbym aby ten skrypt tworzył folder a w nim plik tekstowy w lokalizacji AppData/Roaming, by nie było żadnej odmowy dostępu. Na internecie znalazłem taki skrypt, ale nie wiem jak go wykorzystać, co w nim zmienić i gdzie go wkleić do skryptu, który już mam, bo dopiero zaczynam z Pythonem:
import os dir_path = '%s\\Example\\' % os.environ['APPDATA'] if not os.path.exists(dir_path): os.makedirs(dir_path) file_path = '%sexample.db' % dir_path sqlite3.connect(file_path)
Albo może jeśli nie tak jak opisałem, ale inaczej da się rozwiązać ten problem?
to zapisuje w katalogu w którym jest gra. A ja bym chciał, żeby ten plik “save.txt” tworzył się jeśli nie istnieje w wybranej lokalizacji czyli …/AppData/Roaming, albo nawet w Dokumentach. I wiem, że coś muszę zamienić na to “path” tylko nie wiem co. To tak jak pisałeś sqlite3.connect() to w tych nawiasach lokalizację wpisać?
Przykład do którego linkujesz pokazuje jak zbudować ścieżkę której potrzebujesz i wykorzystać ją do stworzenia pliku sqlite, ale Ciebie interesuje zwykły plik więc z przykładu potrzebujesz tylko pierwszą jego część.
Czyli tyle:
import os
dir_path = '%s\\Example\\' % os.environ['APPDATA']
if not os.path.exists(dir_path):
os.makedirs(dir_path)
Zmieniając Example na nazwę folderu w którym chcesz trzymać pliki w appdata. Możesz zagłębić się jeszcze w katalog Roaming jeśli chcesz/potrzebujesz.