Chciałbym zapisywać do pliku w pętli. Niestety plik nadpisuje się tylko raz. Po czym trzeba odczekać jakiś czas i zapisuje się drugi raz, tak jakby było coś nie tak z buforem. Nie jestem w stanie nadpisać plik więcej niż 1 raz .
Cały czas mam 205 w pliku, nawet gdy wyłączę skrypt i odpalę od nowa. Dopiero po jakimś czasie pozwoli mi drugi raz nadpisać. WTF?

OS: Ubuntu 20.04, python3

#python
Pobierz
źródło: comment_1633020569PLNDbZ8XcYQ3X0KT8Bvuj1.jpg
Słabo znam Pythona dlatego mam pytanie.

Mam pętlę while, która uaktualnia wartość kilkanaście razy na sekundę - (stream z websocket ) .
Potrzebuję NAJPROŚCIEJ wystawić to serwerem HTTP na LOCALHOST aby w apce PHP dało się to odczytywać zmieniające się dane np. w ten sposób

http://locahost/data-from-python.json

Jakieś wskazówki? Obydwie apki są na tej samej maszynie (ubuntu)

Mogę też np. cały czas nadpisywać jakiś plik, ale to chyba słabe?

#python #php
@jaroslaw-stadnicki: @Jurigag: Nie jest słabe. Baza danych której schemat został przemyślany i zaprojektowany przez specjalistę w zasadzie zostaje otwarta na każdego deva który nie ma pojęcia jak wydajnie zapytać o dane. To brak izolacji. Zupełnie jak mutowalna klasa z publicznymi zmiennymi. Odpowiedzialność w jaki sposób zmieniane są dane powinien być po stronie bazy danych i nikt inny nie powieniem tam grzebać. Ten pattern dziala tylko jak macie w firmie bazodanowców
Może się troche #!$%@? ale
1. Docstringi w testach są zbędne w 95% przypadkach, nazwa powinna być dostatecznie opisowa. Pozostałe 5% to testy specyficznych sytuacji gdzie setup jest unikalny/skomplikowany ("testsilniaujemne" z docstringiem "Testuje funkcje silnia dla liczby ujemnej" jest mocno meh)
2. Pisząc kod dla ludu przydałoby się go uprzednio sformatować zgodnie z zasadami, to się PEP8 w ogóle nie ima
3. Pisanie że pytest wykrywa tylko pliki z określonymi
Hej, moze mi ktos pomoc z regexem w pythonie? Proboje wylapac mac address w formie:

AA.BB.CC.DD
AA-BB-CC-DD
AA:BB:CC:DD
AAAA.BBBB.CCCC.DDDD
AAABBBBCCCCDDDD

O ile trzy pierwsze ogarnalem, to mam problem z przedostatnim kiedy seperator to kropka i sa 4.

p = re.compile(r'(?:[0-9a-fA-F]:?){12}')

#python #programowanie
Ten regex lapie wszystkie typy mac jakby ktos kiedys potrzebowal:

p = re.compile(r'(?:[0-9a-fA-F]{4}\.){2}(?:[0-9a-fA-F]{4})|(?:[0-9a-fA-F][.:-]?){12}|(?:[0-9a-fA-F]{6}[.:-]){1}(?:[0-9a-fA-F]{6})|(?:[0-9a-fA-F]{4}[.:-]){2}(?:[0-9a-fA-F]{4})')
via Wykop Mobilny (Android)
  • 0
Cześć Mirko, mam pytanie i szukam jakiegoś ciekawego rozwiązania:
czy znacie może jakiś trick, który umożliwiłby odpytywanie w jednej kwerendzie SQLowej Pandasowych dataframewów oraz tabel na Teradacie tzn.
używam pd.readsqlquery i wynik zapisuję do df'a result1, a na Teradacie mam tabelę result2. I teraz - czy istnieje możliwość zrobienia czegoś takiego:
SELECT * FROM result1 INNER JOIN result2 ON result1.ID =result2.ID;
W sensie w
@Awerege: Nie wiem czym jest teradata ( ͡° ͜ʖ ͡°)

Ale wątpliwe, tzn. strzelam że dataframe musiałbyś wsadzić do tabeli sqlowej żeby móc w ten sposób joinować. Pytanie co to za klejenie i do czego tzn. jak ważny jest performance.

Ja podobne problemy rozwiązywałem raczej tworząc drugiego df sczytując dane z db (WHERE IN + tupla z listą id wyciągana z df) a potem merge w pandasach.
@Awerege: Wątpię, żeby takie połączenie było możliwe. Ja bym spróbował zapisać unikatowe id z result1 do tymczasowej tabeli na teradacie, wyciągnąć "where existem" odpowiadające im dane z result2 do dataframe'a i złączenie zrobić już w pandas.
Jaki język/technologię dla kogoś w technikum na mechatronice/elektronice. Jest możliwość otrzymania stypendium i chciałem coś podpowiedzieć, a o praktycznym zastosowaniu konkretnych technologi w elektronice to niewiele wiem. Ze swojego doświadczenia to chcę zaproponować pythona i programowanie PLC. Oczywiście jakiś kurs językowy i myślałem o wpisaniu we wniosku jakiegoś kursu CNC albo spawania, tylko nie wiem czy to przejdzie. Jakieś propozycje?

#python #naukaprogramowania #programista15k #inzynieria #elektronika
Mirki, mam w miarę proste pytanie, ale nie mogę rozkminić. Mam trywialny program w Pythonie, który miałby być uruchamiany w konsoli przy pomocy docopt. Ten docopt miałby przyjmować jakiś argument int dla opcji --num, a następnie zależnie od tego --num, wylistować tyle wierszy. W jaki sposób program otrzymuje tę wartość inna z CLI? Przykładowo: skrypt.py --num 10; wylistowała by 10 tych samych wierszy. Próbowałem już args = docopt(doc); if args['--num']: print("test"), ale
Cześć,
mam taki problem z wyrażeniami regularnym w Pythonie.

Z większego tekstu chce znaleźć wszystkie takie przypadki, gdzie po AB szukam pierwszego CD, a następnie chce pobrać całą zawartość aż do pierwszego EF.

Np. dla ABaaaaCDbbbbEFzxyCDccccEFxyzABddddCDeeeeEF
Tutaj wynikiem byłoby ['bbbb', 'eeee']

Moje rozwiązanie reg_exp = r'AB.*CD(.*)EF' z fukcją findall zwraca tylko 'eeee'

Tutaj cały kod:
import re

var = 'ABaaaaCDbbbbEFzxyCDccccEFxyzABddddCDeeeeEF'
reg_exp = r'AB.*CD(.*)EF'
res = re.findall(reg_exp, var)

print(res)

#programowanie #python
#naukaprogramowania #python
szału dostaję i nie mogę sobie poradzić :(
mam plik txt,
w każdej linii mam węzeł nazwa i port

1/1/1
1/1/2
1/1/3
1/1/1
1/1/2
1/1/3
potrzebuję zrobić plik by w 1 linii mieć nazwę węzła i wszystkie jego porty:
1/1/1 1/1/2 1/1/3
1/1/1 1/1/2 1/1/3
itd
męczę się z tym już pół dnia.. proszę o pomoc.
@luukasek: musisz przejść po wszystkich liniach i przechować sobie gdzieś nazwy portów. Można to pewnie zrobić na 100 sposobów, ja zazwyczaj korzystam ze słowników. Twój problem rozwiązałbym tak:

result = {}
for line in file:
node, port = line.split()
list_of_ports = result.setdefault(node, [])
list_of_ports.append(port)

Nie wiem czemu formatowanie kodu usuwa mi spacje, wszystko w pętli powinno mieć wcięcie i być na tym samym poziomie.

Kluczowa jest druga linia w pętli, jeżeli
Potrzebuje zrobić skrypt do parsowania pewnej strony internetowej. Z pewnego źródła wiem że zablokują mnie jak tylko ogarną że leci jakiś skrypt.
Jedyną opcje widzę w tym że musiałbym użyć jakiś darmowych proxi żeby nie zaliczyć bana.

Teraz moje pytanie. Jakie zagrożenia na mnie czekają przy używaniu darmowych serwerów z poziomu kodu?
W requestach nie podaję żadnych wrażliwych danych, jedynie pobieram stronę i później sobie ją obrabiam.

#proxy #security #python #webscraping #
Hej Miruny z #python.
Jak odpalić gotowy/pobrany skrypt w python?
Jest to pewna aplikacja do zczytywania danych z czipa po USB.
Jak klikam w ikonę SPIway.py to wyskakuje na 0.5 sek okno, po czym znika.
Da się to jakoś manualnie uruchomić?
Podczas kompilacji programu za pomocą Pyinstaller ryje mi nazwy katalogów z polskimi znakami. Zamiast nich wstawia krzaki, ostatecznie program się odpala ale plików nie znajduje z powodu zmienionej nazwy ścieżki. Czy ktoś z lokalnych fachowców spotkał się już z podobnym problemem?
#python
@inny_89: lecę na najnowszej wersji Pyinstallera, bug jest z 2014, w teorii powinno wspierać unicode z defaultu, jednak praktyka pokazuje inaczej. Najwyżej zrezygnuję z używania polskich znaków w ścieżkach dostępu (co raczej jest dobrą praktyką) i zrobię własny workaround w kodzie programu ( ͡° ͜ʖ ͡°)
@cinek687: No generalnie chciałem to napisać od razu, że chyba nie warto używać w ścieżkach polskich znaków (o ile specyfikacja tego na Ciebie nie narzuca).

Faktycznie stary ten bug - nie zwróciłem na to uwagi ale znowu opisują tam encodowanie ustawione na zmiennych środowiskowych w dyskusji to może to być coś co i u Ciebie aktualnie nie gra.

Jakby nie było: powodzenia. ;)
Mam problem, którego nie jestem w stanie ogarnąć w #python

Problem jest następujący - trzeba dopasować dostawy towarów do ich lokalizacji magazynowych.
Trudność polega na tym, że nierzadko jedna dostawa towaru rozkładana jest w kilka miejsc, więc te ilości nie są zgodne.
Poniżej przykład - w obu przypadkach jest w sumie 47 produktów.

CSV1 - DOSTAWY
data
dostawy;towar;ilosc
21-02-2021;towar1;41
28-03-2021;towar1;3
17-08-2021;towar1;3

CSV_2 - LOKALIZACJE
towar;lokalizacja;ilosc
towar1;A1;21
towar1;A2;13
towar1;A3;4
towar1;A4;9

OCZEKIWANY WYNIK: