Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Export tabeli do pliku *txt
22-04-2020, 10:07,
#1
Export tabeli do pliku *txt
Cześć,

potrzebuję pomocy odnośnie automatycznego exportu tabeli to *txt. Moja tabela zawiera kolumny "Godlo", "param1","param2","param3","param4". W jaki sposób zrobić export aby powstały mi pliki *txt gdzie nazwą plików  będzie wartość pola danego rekordu  w kolumnie "Godlo", a w pliku zawarte będą wartości z pozostałych kolumn oddzielone np. "enterem" ??

pozdrawiam
22-04-2020, 16:27,
#2
RE: Export tabeli do pliku *txt
Skrypt w Pythonie chyba najszybciej
22-04-2020, 20:28,
#3
RE: Export tabeli do pliku *txt
istnieje szansa na jakąś podpowiedź ?
23-04-2020, 23:05,
#4
RE: Export tabeli do pliku *txt
Wg mnie do takich rzeczy można najlepiej użyć pythona - musisz napisać skrypt w tym języku.
Zakładam, że masz jakąś warstwę otwartą w QGIS np. shp z tymi danymi i z niej chcesz je "wypluć".
Skrypt powinien iterować po wierszach tabeli warstwy, z kolumny z nazwą pliku pobierasz nazwę i w określonej lokalizacji tworzysz taki plik.
Do niego zapisujesz wartości z kolejnych atrybutów itp.
I tak w pętli po wszystkich wierszach.

To kilka linijek kodu tak na oko np. to co poniżej, ale musisz sobie już zmodyfikować pod siebie,

Np takie coś:
U mnie tabela miała 6 kolumn id, nazwa pliku (w kolumnie o indeksie 1)  i 4 atrybuty (indeksy od 2 do 5)
Musisz mieć zaznaczoną warstwę aktywną i założony folder wyjścia. Działa na QGIS3

Kod:
lyr = iface.activeLayer()
features = lyr.getFeatures()
sciezka = 'c:/temp/gen_plikow/'
for feat in features:    
   atrybuty = feat.attributes()
   with open(sciezka + atrybuty[1] + '.txt' , 'w') as raport:
       raport.write(atrybuty[2]+'\n')
       raport.write(atrybuty[3]+'\n')
       raport.write(atrybuty[4]+'\n')
       raport.write(atrybuty[5])
24-04-2020, 14:47,
#5
RE: Export tabeli do pliku *txt
Dziękuję !!!
Wpisałem powyższy kod, dostosowałem do swojej tabeli wygląda to tak:

lyr = iface.activeLayer()
features = lyr.getFeatures()
sciezka = 'c:/temp/gen_plikow/'
for feat in features:
atrybuty = feat.attributes()
with open(sciezka + atrybuty[GODLO] + '.txt' , 'w') as raport:
raport.write(atrybuty[1]+'\n')
raport.write(atrybuty[2]+'\n')
raport.write(atrybuty[3]+'\n')
raport.write(atrybuty[4]+'\n')
raport.write(atrybuty[5]+'\n')
raport.write(atrybuty[6])


Lecz po uruchomieniu skrypku wyskakuje mi błąd przetwarzania:

Traceback (most recent call last):
File "C:/PROGRA~1/QGIS3~1.10/apps/qgis/./python/plugins\processing\script\ScriptEditorDialog.py", line 224, in runAlgorithm
exec(self.editor.text(), _locals)
File "<string>", line 1, in <module>
NameError: name 'iface' is not defined


co mogę robić źle ?
24-04-2020, 15:58,
#6
RE: Export tabeli do pliku *txt
A gdzie to wpisujesz?

Z poziomu edytora pythona w QGis powinno to działać normalnie.
W starszych wersjach należało importować, z tego co pamiętam.



Na początek możesz to dodać:

Kod:
from qgis.utils import iface

GODLO zamień na numer kolumny z warstwy ( liczony od 0) - u mnie to była 2 kolumna  dlatego wpisałem 1
Folder  'c:/temp/gen_plikow/' założyłem wcześniej
Te wszystkie wcięcia są ważne, musisz to mieć tak jak w tym co wkleiłem.

Kod:
from qgis.utils import iface
lyr = iface.activeLayer()
features = lyr.getFeatures()
sciezka = 'c:/temp/gen_plikow/'
for feat in features:
  atrybuty = feat.attributes()
  with open(sciezka + atrybuty[0] + '.txt' , 'w') as raport:
      raport.write(atrybuty[1]+'\n')
      raport.write(atrybuty[2]+'\n')
      raport.write(atrybuty[3]+'\n')
      raport.write(atrybuty[4]+'\n')
      raport.write(atrybuty[5]+'\n')
      raport.write(atrybuty[6])




zdjęcie
24-04-2020, 20:27,
#7
Photo  RE: Export tabeli do pliku *txt
Folder założyłem tak jak w kodzie, poprawiłem tak jak napisałeś. Dalej jest błąd - plik w załączniku. Może ma to związek z rodzajem pól ? Pierwsza kolumna to string reszta double...


Załączone pliki Miniatury
   
24-04-2020, 20:38,
#8
RE: Export tabeli do pliku *txt
Kod:
raport.write(str(atrybuty[2])+'\n')
25-04-2020, 10:25,
#9
RE: Export tabeli do pliku *txt
Działa ! Wink Dziękuję za pomoc i cierpliwość !


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Export do pliku .mdb robertk1985 1 6 688 16-06-2014, 09:21
Ostatni post: tomalos
  Export geotiffa acipak 6 20 171 30-01-2013, 13:08
Ostatni post: acipak
  ftools - Export to new projection maciek 1 8 843 15-11-2012, 21:41
Ostatni post: robert
  Export rastra z quantum gis do saga gis prawdziwytomasz 0 5 895 27-08-2012, 19:46
Ostatni post: prawdziwytomasz
  warstwa wektorowa z pliku txt pitt 2 11 550 14-10-2010, 01:08
Ostatni post: borys
  Export warstw danprzy 15 49 313 08-08-2010, 12:30
Ostatni post: borys
  Zapis warstwy txt do pliku shp Rayo 6 24 593 12-01-2010, 20:53
Ostatni post: m_k

Skocz do: