- Apple iPhone 16 Pro - rutinvizsga
- Apple iPhone 15 Pro Max - Attack on Titan
- Megjelent a Poco F7, eurós ára is van már
- Huawei Watch Fit 3 - zöldalma
- Samsung Galaxy Watch6 Classic - tekerd!
- iPhone topik
- Google Pixel topik
- Xiaomi 12T Pro - kétszínű, mint a kétszázas
- Redmi Watch 5 - formás, de egyszerű
- Yettel topik
Új hozzászólás Aktív témák
-
Pxs
aktív tag
válasz
Hege1234 #4326 üzenetére
Köszi, működött!
Igen, olyasmi, egy jóval nagyobb script részeként.Most meg van egy ilyen mókám, szintén JSON (illetve Python-dict), ahol egy meglévő "hazai_csapat_lejatszott_meccsek" változóba kellene átadnom a 98. sorban lévő ""name": "Overall Matched Played"" kulcs feletti "value": "1" kulcs értékét (1-et).
De mindezt úgy, hogy még előtte ellenőriznie kellene, hogy a 21. sorban lévő ""name": "FC Bayern München" kulcs értéke megegyezik-e a "hazai_csapat" változó értékével, csak akkor keressen tovább az említett "Overall Matched Played" string-ig, és mielőtt azt megtalálja, mentse egy ideiglenes változóba minden iteráció során az összes "value" kulcsot, amibe útközben akad.(úgy, hogy aztán felhasználható maradjon későbbre is a legutolsó mentett érték)
Bocs, még nagyon kapkodom a fejem e téren, pedig van némi programozási tapasztalatom
{
"data": [
{
"id": 241976,
"participant_id": 503,
"sport_id": 1,
"league_id": 2,
"season_id": 23619,
"stage_id": 77471317,
"group_id": null,
"round_id": 357241,
"standing_rule_id": 117850,
"position": 1,
"result": "equal",
"points": 3,
"participant": {
"id": 503,
"sport_id": 1,
"country_id": 11,
"venue_id": 53,
"name": "FC Bayern München"
},
"details": [
{
"id": 3523848805,
"standing_type": "standing",
"standing_id": 241976,
"type_id": 130,
"value": 1,
"type": {
"id": 130,
"name": "Overall Won"
}
},
{
"id": 3523848806,
"standing_type": "standing",
"standing_id": 241976,
"type_id": 131,
"value": 0,
"type": {
"id": 131,
"name": "Overall Draw"
}
},
{
"id": 3523848802,
"standing_type": "standing",
"standing_id": 241976,
"type_id": 133,
"value": 9,
"type": {
"id": 133,
"name": "Overal Goals Scored"
}
},
{
"id": 3523848819,
"standing_type": "standing",
"standing_id": 241976,
"type_id": 144,
"value": 0,
"type": {
"id": 144,
"name": "Away Lost"
}
},
{
"id": 3523848803,
"standing_type": "standing",
"standing_id": 241976,
"type_id": 134,
"value": 2,
"type": {
"id": 134,
"name": "Overall Goals Conceded"
}
},
{
"id": 3523848815,
"standing_type": "standing",
"standing_id": 241976,
"type_id": 187,
"value": 3,
"type": {
"id": 187,
"name": "Overall Points"
}
},
{
"id": 3523848804,
"standing_type": "standing",
"standing_id": 241976,
"type_id": 129,
"value": 1,
"type": {
"id": 129,
"name": "Overall Matched Played"
} -
sztanozs
veterán
válasz
Hege1234 #4259 üzenetére
Ez az elsot felveszi es belerakja a path-ba:
@ECHO off
setlocal EnableDelayedExpansion
WHERE /q python.exe
IF ERRORLEVEL 1 (
WHERE /q /R %LOCALAPPDATA% python.exe
IF ERRORLEVEL 1 (
ECHO Nincs installalt python a APPDATA LOCAL-ban!
EXIT /b -1
) ELSE (
ECHO Van installalt python a APPDATA LOCAL-ban!
)
CALL :sub
set "scripts_dir=!py_path!Scripts\"
set "python_dir=!py_path!"
for /f "usebackq tokens=2,*" %%A in (`reg query HKCU\Environment /v PATH`) do set userPATH=%%B
ECHO "!userPATH!;!scripts_dir!;!python_dir!"
setx PATH "%userPATH%;%scripts_dir%;%python_dir%"
)
GOTO :eof
:sub
FOR /f "tokens=*" %%A IN ('WHERE /R %LOCALAPPDATA% python.exe') do (
REM ECHO %%A
SET "py_path=%%~dpA"
EXIT /b
)
GOTO :eof -
sztanozs
veterán
válasz
Hege1234 #4254 üzenetére
setx + kozvetlen registry mokolas:
@echo off
WHERE /q python.exe
IF ERRORLEVEL 1 (
set /p spec_python_ver=add python dir: (eg.: Python39) write here:
set "scripts_dir=%LOCALAPPDATA%\Programs\Python\%spec_python_ver%\Scripts\"
set "python_dir=%LOCALAPPDATA%\Programs\Python\%spec_python_ver%\"
for /f "usebackq tokens=2,*" %A in (`reg query HKCU\Environment /v PATH`) do set
userPATH=%B
setx PATH "%userPATH%;%scripts_dir%;%python_dir%"
) -
sh4d0w
félisten
válasz
Hege1234 #4251 üzenetére
Kornyezeti valtozokat dictionary-kent kell kezelni Python alatt, tehat az ertek, amit be akarsz allitani, string kell, hogy legyen.
Viszont amihez admin jog kell - eleg rohejes lenne, ha egy ilyen egyszeru scripttel meg tudnad kerulni - azt vagy adminkent inditod, vagy UAC promptot kapsz.
-
Atomantiii
addikt
válasz
Hege1234 #4229 üzenetére
Köszi, jó lett.
edited_tv_programs = re.sub(r'<desc lang="hu">(\(.*\.\) )', r'<desc lang="hu">', edited_tv_programs)
Elvileg elég lenne a desc lang hu-s rész nélkül is, de így is jó. Már itt kínlódtam vele egy jó ideje, sehol sem találtam meg, hogy hivatkozzak a zárójelre, a 0-ra és a .-ra egyszerre.
Így az eredeti 85 MB-os fájlból lett 33 MB.
-
Atomantiii
addikt
válasz
Hege1234 #4226 üzenetére
Közben találtam még egy olyat, hogy egyes sorokban van feleslegben egy ilyen a <desc lang="hu"> után, hogy zárójel nulla pont zárójel szóköz, ami felesleges. Ezt próbáltam kitörölni, de sehogy sem sikerül.
<desc lang="hu">(0.) Get ready as we bring you all of the greatest hits from singing sensation Ariana Grande!</desc>
edited_tv_programs = re.sub(r'<desc lang="hu">(0.) ', r'<desc lang="hu">', edited_tv_programs)
Akárhogy csináltam mindig csak a kezdő zárójel tűnt el de a 0 és a többi maradt.
-
Atomantiii
addikt
válasz
Hege1234 #4221 üzenetére
Abban tudnál még segíteni, hogy ezt hogy tudom átírni, hogy ne a tárhelyről, hanem a saját gépemről töltse be a forrás xml-t és oda is mentse le?
Próbáltam, de nem igazán akar összejönni, mindig hibát ír erre a sorra:
edited_tv_programs = ET.tostring(root, encoding='unicode')
Traceback (most recent call last):
File "d:\EPG\xmlremove.py", line 24, in <module>
edited_tv_programs = ET.tostring(root, encoding='unicode')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Python312\Lib\xml\etree\ElementTree.py", line 1083, in tostring
ElementTree(element).write(stream, encoding,
File "C:\Python312\Lib\xml\etree\ElementTree.py", line 728, in write
serialize(write, self._root, qnames, namespaces,
File "C:\Python312\Lib\xml\etree\ElementTree.py", line 851, in _serialize_xml
tag = elem.tag
^^^^^^^^
AttributeError: 'ElementTree' object has no attribute 'tag' -
Atomantiii
addikt
válasz
Hege1234 #4217 üzenetére
Ez a teljes fájl. Ebből szeretnék kitakarítani felesleges dolgokat.
Pl az url-eket, ikonokat esetleg még másokat is, de ha már az egyik összejönne az is sokat jelentene méretben, mert több ezer van benne.
<url system="port.hu">http://port.hu/adatlap/szemely/peter-breitmayer/person-293341</url>
<icon src="https://port.hu/img/agelimit/raster/12_age_icon_black.png" /> -
axioma
veterán
válasz
Hege1234 #4140 üzenetére
Bocs, tegnap nem jutottam el odaig...
Draft, nem is IDE-bol, de iranynak talan jo. A ..-nal toltsd ki a sajat valtozatod megfelelo soraivalpatterns={
"app_key":[r"header=.app_key..value=.(.*)..merge=0]"],
"azukiapp":[r"E/nsHttp...AzukiApp:.(.*)"],
... # ide atalakitod a tobbit is"azudrm":[r'D/n.*?AzukiApp.*?[^.].*?[^.]\"AzukiDRM\" value=\"(.*?)\"',r"E/nsHttp...AzukiApp:..*.*[^?].*[^?.].*[^?.]E/nsHttp...AzukiDRM:.(.*)"]
}found_tokens = set()
while found_tokens!=set(patterns.keys()):
...
for file_path in log_files:
try:
with open...
for key,patternlist in patterns.items():
if key not in found_tokens:
for pattern in patternlist:
try:
re.findall(pattern, tdata)[0].strip()
found_tokens.add(key) # if no exception occured
except: pass
...
Szolj ha elakadsz, most ennyit sikerult. [Azt lehetne me'g figyelni hogy melyik file ami mar lezarodott igy felesleges ujranezni, de ha ez a sebesseg is jo akkor mind1.] -
-
axioma
veterán
válasz
Hege1234 #4135 üzenetére
Amennyire elsore atlatom, ha 1 file-ban talal mindent, akkor is csak egy +1 tortenik, utana ha a kov. fajlban nincs mind a 10, akkor 1x se novelsz.
Vagy csak egy flag kene hogy megtalaltad mind, de akkor meg ha nem egyben van akkor azert nem lepsz ki, vagy egyesevel +1, de ovatosan az ertekadasokkal, mert a kovetkezonel felulcsapod az elozo file talalatait is, es/vagy esetleg ujra beszamolod. Szoval egyesevel kene a tokenekre ha me'g ures akkor re.findall, es ha megtalalta, akkor +1 (es legkozelebb ide ugye nem mesz bele), ha jol sejtem ez lehetett az eredeti szandek.
(Amugy 10-nel nem szaroznek megszamolgatassal, ami sikeres azt dobald set-be, es kilepesi feltetel hogy egyenlo-e az osszes keresendovel, mert igy nem kell az ujrakereseseknel se vizsgalodni.) -
JoinR
őstag
válasz
Hege1234 #4102 üzenetére
Egy chatgpt-s refactort rádobtam.
from glob import glob
tv_or_radio = 'Rádió' if elem['tv_or_radio'] else 'Videó'
file_extension = 'mp3' if elem['tv_or_radio'] else 'mkv'
s_pattern = fr"Downloads\\befejezett\\NAVA\\**\\*id#{elem['clean_id']}*{file_extension}"
file_list = glob(s_pattern, recursive=True)
if file_list:
for file_path in file_list:
print(f'[INFO] ez a fájl már létezik itt: {file_path}')
continue -
-
Roxkex
senior tag
válasz
Hege1234 #3920 üzenetére
Meg is néztem közben !
Köszi tényleg jó ! Viszont az AVG az folyamatosan sír az FFMPEG-re mert hiába adom hozzá a kivételekhez, mert mindig új elérési útra kerül ugye a temp miatt.
Szóval maradt az, hogy nem pakolom bele az exe-be, hanem az exe mellett lesz egy mappában az ilyen külső cucc.
De nem lesz haszontalan a segítség, mert más OP rendszerhez viszont jó lesz -
Roxkex
senior tag
válasz
Hege1234 #3918 üzenetére
Oh király, köszi szépen a választ !
Le is csekkolom majd- Ezt a --add-data megoldást Én is láttam már csak nekem egyelőre nem sikerült működésre bírnom ilyen formában.
Az, hogy a tempbe mit dolgozik az közel lényegtelen számomra( vagy ez valamiért gond lenne ? - ha nem egyfájlba lenne a scriptem + ffmpeg akkor is tempbe dolgozna ? )
A fő lényeg úgyis az eredmény, hogy az oda kerüljön amit paraméterként megadok a scriptemnek vagy egy default folder lesz. -
sztanozs
veterán
válasz
Hege1234 #3900 üzenetére
shutil leirasabol:
In order to overwrite file (if one already exists in destination), we need to specify full path for destination, not only destination folder name.import shutil
import os
src_path = '.\\encoding'
trg_path = '.\\encoding\\befejezett\\'+dir_title+''
for src_file in Path(src_path).glob('*.*'):
filename = os.path.basename(src_file)
dest = os.path.join(trg_path, filename)
shutil.move(src_file, dest) -
kovisoft
őstag
válasz
Hege1234 #3868 üzenetére
Őszintén szólva kezdem elveszteni a fonalat
, de igen, valami olyasmire gondoltam, mint az rjust() rész, amit írsz. A lényeg az, hogy ha ugyanannyi számjegyből állnak a számaid, akkor a string (azaz ábécé szerinti) rendezés ugyanazt a sorrendet adja, mint a számok nagyság szerinti rendezése.
Amúgy biztos, hogy jó az a regex2? Nem inkább [1-9][0-9]* kellene [1-9]*[0-9] helyett? Mert az utóbbi azt jelenti, hogy csak az utolsó számjegy lehet 0 és 9 közötti, a többi 1 és 9 közötti. Szerintem inkább az kellene, hogy az első számjegy 1 és 9 közötti, a többi 0 és 9 közötti. Persze az egésznek csak 3 vagy több jegyű számoknál van jelentősége, season és episode meg nem szokott akkora lenni.
-
kovisoft
őstag
válasz
Hege1234 #3866 üzenetére
Ha teljesen random stringek lehetnek, és azt sem lehet tudni, hogy hány darab szám jellegű rész van bennük és azok hol helyezkednek el a stringen belül, akkor én hagynám a replace() és társait, és inkább valami ilyesmit csinálnék:
- feldarabolnám egy listába az adott stringet olyan részekre, amikben vagy minden karakter csupa számjegy, vagy minden karakter csupa nem-számjegy
- a nem-számjegy elemeket békén hagynám
- a csupa számjegyből álló elemeket kiegészíteném balról nullákkal úgy, hogy a teljes szám hossza valami fix érték legyen (pl. ha nincsenek 10 számjegynél hosszabb számok, akkor legyen minden szám 10 jegyű)
- ebből a listából visszaépítenék egy stringet
- az így kapott string alapján rendezném a stringjeimet, itt már nem lenne gond a rendezéssel, hiszen minden szám ugyanannyi jegyű, tehát a lexikografikus rendezés egyúttal nagyságrendi rendezést is jelentNem tudok olyan egyszerű split() hívást, ami a fenti darabolást elvégezné, úgyhogy szerintem erre kellene írni egy ciklust, ami számjegy/nem-számjegy mentén vágna. A visszaépítés már csak egy join() lesz.
-
kovisoft
őstag
válasz
Hege1234 #3864 üzenetére
Azt ugye neked kellene valahogy eldöntened, hogy az ilyen (és egyéb) kivételes eseteket hogyan szeretnéd rendezni, és ehhez idomítani a sort_key() függvényt. A ValueError lekezelése szerintem jó ötlet. Ha pl. azt szeretnéd, hogy a kivételek a végére kerüljenek, akkor érdemes a sort_key() visszatérési értékében a listát mondjuk egy 0-val kezdeni, ha tudta int-ként értelmezni, és 1-gyel kezdeni, ha nem tudta (és ilyenkor mögé tenni az eredeti stringet).
Pl. egy lehetséges megoldás:def sort_key(s):
x=s.replace('.',' ').replace('-',' ').split()
try:
return [0, int(x[0]),int(x[2])]
except ValueError:
return [1, s] -
kovisoft
őstag
válasz
Hege1234 #3862 üzenetére
Írj egy függvényt, ami generál egy kulcsot a rendezéshez, és ezt add meg a sort()-nak. A függvény pl. csinálhatja azt, hogy szétdobja az adott stringet szóközök mentén, veszi az első és harmadik oszlopot integerként, és ebből generálja a kulcsot. Itt egy példa, ez a szétdobás előtt lecseréli a . és - karaktereket szóközre:
def sort_key(s):
x=s.replace('.',' ').replace('-',' ').split()
return [int(x[0]),int(x[2])]
És ezt a függvényt add meg a sort()-nak:merged_jsons_title.sort(key=sort_key)
-
sztanozs
veterán
válasz
Hege1234 #3840 üzenetére
>>> value6=True
>>> f"{['nincs','van'][value6]} Magyar szinkron"
'van Magyar szinkron'
>>> value6=False
>>> f"{['nincs','van'][value6]} Magyar szinkron"
'nincs Magyar szinkron'
igy egyben:
out = f'{value1} - S{value2}E{value3} |{kek+["nincs","van"][value6]} Magyar szinkron|
{zold+"|Magyar felirat|"*value5}{sarga+"|Magyar forced|"*value7+feher}{sarga+"|Magyar forced|"*value7+feher}{"|"+value8+"|"} {value4}' -
sztanozs
veterán
válasz
Hege1234 #3838 üzenetére
value5 = any(a.value.lower().split()[0] in "hunmagyar" for a in list5)
persze ez meg mindig nem talaja meg a forced - hun es ehhez hasonlo dolgokat (ahol nem az elso szo a hu vagy hun vagy magyar
esetlegvalue5 = any(any("hunmagyar".__contains__, a.value.lower().split()) for a in list5)
-
sztanozs
veterán
válasz
Hege1234 #3826 üzenetére
Dobj fel valahova egy json forrast, este megprobalok ranezni.
mod1: btw az
in (*args)
csak pontos talaltra ad eredmenyt, nem regex.
mod2: a in("dsfgdfgh") szetszedi a sztringet, tehat valojaban ezt csinalja:in("d","s","f","g","d","f","g","h")
bar, ahogy nezem 3.10 mintha mashogy csinalna...
esetleg ez:{zold+" |Magyar felirat|"*any(a.lower().split()[0]in"hunmagyar"for a in match5.value)}
-
sztanozs
veterán
válasz
Hege1234 #3823 üzenetére
for match1,match2,match3,match4,match5 in zip(jsonpath_expression1.find(my_responses),jsonpath_expression2.find(my_responses),jsonpath_expression3.find(my_responses),jsonpath_expression4.find(my_responses),jsonpath_expression5.find(my_responses))):
print(f'{match1.value} - S{match2.value}E{match3.value} - {match4.value}{" - Magyar"*any(a.lower()in("hu","hun","magyar")for a in match5.value)}') -
axioma
veterán
válasz
Hege1234 #3821 üzenetére
Legyen
list1=list(jsonpath_expression1.find(my_responses))
es a tobbit hasonloan, majd for ciklussal index szerint egyszerre veszed ki oket es printeled.
Mobilrol ennyi, ha kell kesobb tudok teljes kodot.hm, vagy berakod zip-pel egy iteratorba, az elegansabb (tordeld szebbre, es nem probaltam ki de elvben kb igy kene kineznie)
for match1,match2,match3,match4 in zip(jsonpath_expression1.find(my_responses),jsonpath_expression2.find(my_responses),jsonpath_expression3.find(my_responses),jsonpath_expression4.find(my_responses))):
print(f'{match1.value} - S{match2.value}E{match3.value} - {match4.value}') -
sztanozs
veterán
válasz
Hege1234 #3766 üzenetére
Regex nem rak sorba, a pipe csak egy egyszeru OR operator, minden egyezest felkap.
ha sorban akarod feltolteni a listat, akkor csinalj egy listata a regexekkel es ciklusban toltsd be a talalatokat a vegso listaba.hd = open("hd-links.txt").read()
sorted_rex = [r".*1080p.*dash.*|.*dash.*1080p.*", r".*720p.*dash.*|.*dash.*720p.*", r".*hd_dash.*", r".*sd_dash.*|.*dash.*540p.*|.*540p.*dash.*"]
sorted_list = []
for rex in sorted_rex:
sorted_list += re.findall(rex, hd)
hd_link = sorted_list[0]
print('1080p \ 720p \ 540p: \n'+hd_link)
print(hd_link, file=open("dash.txt", "w")) -
sztanozs
veterán
válasz
Hege1234 #3742 üzenetére
gyakorlatban nalam:
>>> filename
'c:\\temp\\a.jpg'
>>> date.fromtimestamp(os.path.getmtime(filename))
datetime.date(2018, 11, 21)
>>> date.fromtimestamp(os.path.getctime(filename))
datetime.date(2022, 10, 2)Persze jobban belegondolva valos a kiirt datum, hiszen a faj regi, de csak nemreg masoltam at egy masik geprol. Tehet ebben a konyvtarban ekkor lett letrehozva a fajl, de utoljara modositva sokkal korabban volt...
-
sztanozs
veterán
válasz
Hege1234 #3740 üzenetére
Nekem a getctime valami hulyeseget ad vissza...
getctime(filename)
Return the metadata change time of a file, reported by os.stat().
Ez biztos nem a creation time...tobb, mint 5 napos torles:
delete_this = glob.glob(filename)
today = date.today()
for f in delete_this:
if (today - date.fromtimestamp(os.path.getmtime(f)).days > 5:
os.remove(f) -
cousin333
addikt
válasz
Hege1234 #3719 üzenetére
Pontosan mit szeretnél elérni? Alapvetően az a problémád, hogy kevered a datetime objektumot és annak a sztring megfelelőjét. Illetve nem importálod a datetime modult, csak egy elemét. Azt sem értem, hogy a fenti példában minek a startTime, ha egyszer a pillanatnyi időt használod. Pár példa:
import datetime
TIME_FORMAT = '%Y-%m-%dT%H:%M:%SZ'
startTime = '2022-10-26T20:00:00Z'
# Ido objektum a sztringbol (datetime.datetime objektumkent)
start = datetime.datetime.strptime(startTime, TIME_FORMAT)
# pillanatnyi ido (datetime.datetime objektumkent)
now = datetime.datetime.now()
# ebbol a pillanatnyi ido (sztringkent)
now_str = now.strftime(TIME_FORMAT)
print(now_str)
# idokulonbseget hozzaadva (datetime.datetime objektumkent)
time_test_minus = now + datetime.timedelta(minutes=-45)
# idokulonbseget hozzaadva (sztringkent)
time_test_minus_str = time_test_minus.strftime(TIME_FORMAT)
print(time_test_minus_str)
-
Capricornus
aktív tag
válasz
Hege1234 #3719 üzenetére
Én az astropy.time-al szoktam ilyen problémákat kezelni. Sima datetime-ot nem használok, mert szerintem nagyon nehézkes. Ha neked csak a sima datetime jöhet szóba, abban sajnos nem tudtam én sem ezt megoldani.
from datetime import timedelta
from astropy.time import Time
startTime = '2022-10-26T20:00:00Z'
date_and_time = Time(startTime, format='isot', scale='utc')
time_test_minus = date_and_time + timedelta(minutes=-45)
print(time_test_minus) -
sztanozs
veterán
válasz
Hege1234 #3688 üzenetére
import glob
import os
currentFile = __file__
realPath = os.path.realpath(currentFile)
dirPath = os.path.dirname(realPath)
dirName = os.path.basename(dirPath)
video = dirPath + glob.glob('/files/0vid*.mp4')[0]
audio = dirPath + glob.glob('/files/0vid*.m4a')[0]
# vagy kézzel...
videoout = dirPath + glob.glob('/files/1videoO*.mp4')[0]
audioout = dirPath + glob.glob('/files/1audioO*.m4a')[0]ha nincs létrehozva már a kért kimeneti fájl, akkor kézzel kel legyártani a helyes path-t a glob nem lesz jó.
-
cousin333
addikt
válasz
Hege1234 #3653 üzenetére
Szerintem a megoldást a reguláris kifejezések és egy generátor kombinációja jelenti. Előbbi megkeresi a beadott sztringben az értékeket, utóbbi meg egyesével visszaadja a feldolgozott elemeket, amiket aztán felhasználhatsz a feldolgozás során. Egy gyors példa:
import re
def process(text):
for match in re.finditer(r'(\d+-\d+)|\d+', text):
x = match.group()
if '-' in x:
a, b = x.split('-')
for i in range(int(a), int(b)+1):
yield i
else:
yield int(x)
Ezt így tudod használni az alábbi példaszövegen:
text = "1,2 3 4 25,16-20,22 7"
x = list(process(text))
#x: [1, 2, 3, 4, 25, 16, 17, 18, 19, 20, 22, 7]
A kódodba meg az inputnál tudod beilleszteni:
text = input('\nírd ide a számot vagy számokat: ')
for number in process(text):
id_ = title['list'+str(number)]['j_id']
print('\n'+str(id_))
A lista felhasználása előtt esetleg sorrendbe rakhatod az értékeket, és egy set()-tel kiszűrheted a duplikátumokat.
-
Hege1234
addikt
válasz
Hege1234 #3652 üzenetére
eddig ennyire jutottam
while True:
try:
zk, yc = list(map(int, input("ettől-eddig: ").split('-')))
x = range(zk, yc+1)
for number in x:
print(number)
except ValueError:
for number in input('\nírd ide a számot vagy számokat: ').split():
print(number)annyival még meg lehetne toldani, ha valaki az ettől-eddig: részbe csak egy számot vagy számokat ír be akkor azt ne kelljen újra beírni a ValueError: utáni részbe mégegyszer?
ettől-eddig: 3-7
3
4
5
6
7
ettől-eddig: 5 9 18
írd ide a számot vagy számokat: 5 9 18
5
9
18
ettől-eddig: -
Hege1234
addikt
válasz
Hege1234 #3631 üzenetére
visszatérve arra, hogy lenyomom a számot és az beilleszti a böngésző nevét a listából
át lehetne alakítani olyanra, hogy magától végigmenjen minden elemen ami a listában szerepel?
options = ["chrome", "edge", "firefox", "brave"]
res = pick(options)
picked_browser = options[res]
func = getattr(browser_cookie3, picked_browser)
brows_er = func()
print(brows_er, file=open('all_'+picked_browser+'_cookie.txt', 'w'))így magától elkészítené mind a 4 txt fájlt amikben findall-al már tudok kerestetni
all_chrome_cookie.txt
all_edge_cookie.txt
all_firefox_cookie.txt
all_brave_cookie.txt -
sztanozs
veterán
válasz
Hege1234 #3596 üzenetére
pedig ez feldolgozható kellene legyen beautful souppal is, kb így:
durations = [[*d.strings][1][:8]for d in soup.find_all("span", {"class": "duration"})]
#3597 - strptime is elegáns...
Igazából a milisechez se kell külön modul, csak összedogatni a részeket:
for duration in durations:
format = "%H:%M:%S"
x = time.strptime(duration, format)
delta_ms = (x.tm_hour * 3600 + x.tm_min * 60 + x.tm_sec) * 1000
# vagy
h, m, s = map(int, duration.split(':'))
delta_ms = (h* 3600 + m * 60 + s) * 1000 -
JoinR
őstag
válasz
Hege1234 #3592 üzenetére
import urllib.request
import re
from bs4 import BeautifulSoup
from datetime import timedelta
import time
link = 'https://nava.hu/wp-content/plugins/hms-nava/interface/classes/cacheManager.php?id=3964147&solrUrl=http%3A%2F%2F10.10.100.101%3A8983%2Fsolr%2Fnavapub%2Fselect&blogId=2&mode=titles&navaPointsUrl=%2F%2Fnav>
response = urllib.request.urlopen(link)
soup = BeautifulSoup(response.read(), from_encoding=response.headers.get_param('charset'), features="html.parser")
duration = soup.select_one("span[class=duration]").text
format = "Időtartam: %H:%M:%S| "
x = time.strptime(duration, format)
delta = timedelta(hours=x.tm_hour,minutes=x.tm_min,seconds=x.tm_sec).total_seconds()
delta_ms = int(delta)*1000
print(delta_ms) -
sztanozs
veterán
válasz
Hege1234 #3592 üzenetére
Én requests modullal szedném le, és nem file-ba, hanem egyből stringbe. Melóban sajna nem tudom kipróbálni a linket ami a kódban van.
BTW a time.txt meg duration.txt honnan jön? Nem úgy tűnik, hogy azt a kód töltené le... Write módban miért olvasol belőle?
Nem egészen értem, mit csinálna a kód. Vissza is szeretnél írni bele?Milyen formában jön le a html adat, példát tudsz mutatni?
-
sztanozs
veterán
válasz
Hege1234 #3588 üzenetére
Sorry, csak fejből írtam
map(int,...)-tel lehet még egyszerűsíteni:from datetime import timedelta
lista = ['00:10:00', '00:40:00', '01:00:00']
for elem in lista:
h, m, s = map(int, elem.split(':'))
delta = timedelta(hours=h, minutes=m, seconds=s)
print(delta.total_seconds() * 1000)
Új hozzászólás Aktív témák
Hirdetés
- Autós topik
- Videó stream letöltése
- Apple iPhone 16 Pro - rutinvizsga
- Debrecen és környéke adok-veszek-beszélgetek
- Apple iPhone 15 Pro Max - Attack on Titan
- Megjelent a Poco F7, eurós ára is van már
- Filmvilág
- Milyen billentyűzetet vegyek?
- Kerékpárosok, bringások ide!
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- További aktív témák...
- Bomba ár! HP EliteBook Folio 1040 G2 - i5-G5 I 8GB I 256GB SSD I 14" HD+ I Cam I W10 I Garancia!
- Akciós Windows 10 pro + Office 2019 professional plus csomag AZONNALI SZÁLLÍTÁS
- Apple iPad Air 4 64GB Kártyafüggetlen 1Év Garanciával
- DDR3 BAZÁR! 8GB 16GB 1333MHz 1600MHz 2400MHz DDR3 memória garanciával hibátlan működéssel
- Apple iPhone 14 128GB , Kártyafüggetlen
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged