Új hozzászólás Aktív témák

  • #82595328

    törölt tag

    Egy nagyon érdekes (számomra nagyon kellemetlen) problémába futottam bele.
    A történet:
    Írtam egy kisebb programot, ami egy tabulátorral elválasztott szövegfájlból beolvassa sorokat, kiválaszt belőle elemeket, berakja egy listába, azt pedig kiírja egy másik fájlba. Igazából hobbiból, de munkahelyre. A programot Windows 10 írtam, hibátlanul lefutott. Lefordítottam. A munkahelyemen lefuttattam Windows 7-en. Nem működött, vagyis kimaradtak sorok. Jó. Akkor csináljuk másképp. Átírtam ';'-vel elválasztott .csv-re. Otthon hibátlanul működik Windows 10-n. Munkahelyen megint nem. Megint kimaradnak (azt hiszem) ugyanazok a sorok. Először azt gondoltam, hogy a lefordított .exe fut valami hibára, de ezt így nehéz tesztelni, hogy nincs hibaüzenet, ezért tegnap otthon felraktam a Windows 7-t. A hiba .py fájl futtatásakor is jelentkezett. Következő ötletem az volt, hogy a hibakezelés miatt a listaelem változó nem jön létre. Tévedtem, létrejön. Eddig jutottam tegnap. Az a gond, hogy innentől már csak 2 helyen lehet hiba, és egyik sem a programom hibája.
    1. Az append fut hibára
    2. A kiírás fut hibára.
    Ezt még kiderítem.
    A kérdésem az, látott már valaki ilyet? Hogy ugyanaz a program ugyanazt a fájlt beolvasva Windows 10-n eltérő eredményt ad mint Windows 7-n?
    Ja és nem kódolási hiba. utf-8-cal is ugyanezt csinálja.

    foLista = []
    with open(name, 'r',encoding="latin-1")as f:
    for sor in f:
    try:
    sor = sor.strip().split(';')
    if sor[0] == 'EMPLOYEE:':
    neve = sor[4].strip().split(',')
    vezeteknev = neve[1]
    keresztnev = neve[0]
    nev = (vezeteknev+' '+keresztnev)
    if sor[0][0] == '2' and len(sor[9]) == 0:
    datum = sor[0]
    if float(sor[12][-1]) >= 0:
    cegnev = sor[0]
    kezdes = sor[8]
    vege = sor[10]
    orak = sor[12]
    megjegyzes = sor[13]
    listaelem= (nev, datum, cegnev, kezdes, vege, orak, megjegyzes)
    foLista.append(listaelem)
    except:
    continue
    lista = list(foLista)
    with open('kesz.csv', 'w', encoding="latin-1") as f:
    for i in lista:
    f.write(';'.join([str(elem) for elem in i]) + '\n')

Új hozzászólás Aktív témák