Forum strony www.multipasko.pl [Regulamin]


Dodaj wpis w tym temacie
Spis tematów
Login:

Hasło:
Strona: 1 2
Wyślij wiadomość do admina

Przewiń wpisy ↓

Nowy temat na forum

2023-05-15 (07:38)

status grem10
Data rejestracji: 2018-06-03 00:00:00
Ilość postów: 13

15716
wpis nr 1 466 451
[ CZCIONKA MONOSPACE ]

Z wersjami Pythona bywa czasem kłopot, nie zawsze te najnowsze bywają najlepsze, to że kiedyś działał skrypt dawno to pewnie na wcześniejszej wersji pythona.

Spróbujcie taki skrypt(by dobrze skopiować należy kliknąć czcionka specjalna):

list1 = open('plik1.txt','r',encoding='utf-8').readlines()
list2 = open('plik2.txt','r',encoding='utf-8').readlines()

list_difference = []
for item in list1:
if item not in list2:
list_difference.append(item)

with open('plik3.txt','w',encoding='utf-8') as file_out:
for line in list_difference:
file_out.write(line)

albo taki:

a = open('plik1.txt', 'r').readlines()
b = open('plik2.txt', 'r').readlines()
output = []

for item in a:
if item not in b:
output.append(item)

with open('plik3.txt', 'w') as res:
for line in output:
res.write(line)

powinno być poprawnie, ale czy napewno, u mnie działają przez przeciągnięcie lub z konsoli (np.poprawne użycie z wiersza poleceń: python test.py).


2023-05-15 (09:09)

status grem10
Data rejestracji: 2018-06-03 00:00:00
Ilość postów: 13

15716
wpis nr 1 466 460
[ CZCIONKA MONOSPACE ]

Bardzo dziwne u mnie chyba działa prawidłowo, przykładowa zawartość plik1.txt:

abc
def
ghi
jji
ggg

plik2.txt:

jkl
mno
def
abc
bbb
ngr

po wykonaniu skryptu powstał plik3.txt:

ghi
jji
ggg

więc widzę że poprawnie.


2023-05-15 (10:02)

status kleszek
Data rejestracji: 2006-05-27 00:00:00
Ilość postów: 4903

2047
wpis nr 1 466 472
[ CZCIONKA MONOSPACE ]

Makinero napisał cyt.
Przykład

Plik1.txt
abc
def
ghi


Plik2.txt
jkl
mno
abc
def

Wynik powinien być taki:
Plik3.txt
ghi

Przepisz kod z obrazka do notatnika i zapisz go pod jakąś nazwą z rozszerzeniem .py Uruchom skrypt przez dwukrotne naciśnięcie pliku. U mnie działa. Kod wstawiłem w postaci obrazka, gdyż wstawiając go bezpośrednio na stronę pojawiają się błędy. zdjęcie
2023-05-15 (10:05)

status kleszek
Data rejestracji: 2006-05-27 00:00:00
Ilość postów: 4903

2047
wpis nr 1 466 475
[ CZCIONKA STANDARDOWA ]

Ten sam kod skopiowany ze skryptu

def usun_powtarzajace_sie_wyrazy(plik1, plik2, plik3):
with open(plik1, 'r') as file1:
wyrazy_plik1 = set(file1.read().split())

with open(plik2, 'r') as file2:
wyrazy_plik2 = file2.read().split()

wyrazy_plik2_bez_powtorzen = [wyraz for wyraz in wyrazy_plik2 if wyraz not in wyrazy_plik1]

with open(plik3, 'w') as file3:
for wyraz in wyrazy_plik2_bez_powtorzen:
file3.write(wyraz + '
')

plik1 = 'Plik1.txt'
plik2 = 'Plik2.txt'
plik3 = 'Plik3.txt'

usun_powtarzajace_sie_wyrazy(plik2, plik1, plik3)
2023-05-15 (10:15)

status kleszek
Data rejestracji: 2006-05-27 00:00:00
Ilość postów: 4903

2047
wpis nr 1 466 477
[ CZCIONKA MONOSPACE ]

cyt.
kleszek> a sprawdzałeś na chińszczyźnie ?

Na chińszczyznie nie działa Ale może chińszczyzna to ... skrajny przypadek ? który będzie rzadko używany ?
2023-05-15 (10:36)

status kleszek
Data rejestracji: 2006-05-27 00:00:00
Ilość postów: 4903

2047
wpis nr 1 466 485
[ CZCIONKA MONOSPACE ]

Sztuczna intelgencja podpowiedziała, że trzeba lekko zmodyfikować kod na taki

def usun_powtarzajace_sie_wyrazy(plik1, plik2, plik3):
with open(plik1, 'r', encoding='utf-8') as file1:
wyrazy_plik1 = set(line.strip() for line in file1 if line.strip())

with open(plik2, 'r', encoding='utf-8') as file2:
wyrazy_plik2 = set(line.strip() for line in file2 if line.strip())

wyrazy_plik2_bez_powtorzen = wyrazy_plik2 - wyrazy_plik1

with open(plik3, 'w', encoding='utf-8') as file3:
file3.write('
'.join(wyrazy_plik2_bez_powtorzen))

plik1 = 'Plik1.txt'
plik2 = 'Plik2.txt'
plik3 = 'Plik3.txt'

usun_powtarzajace_sie_wyrazy(plik1, plik2, plik3)


Linia file 3.write powinna wyglądać tak jak na obrazku
zdjęcie

--- wpis edytowano 2023-05-15 10:38 ---

2023-05-15 (10:38)

status makinero
Data rejestracji: 2017-04-10 00:00:00
Ilość postów: 8697

15235
wpis nr 1 466 487
[ CZCIONKA MONOSPACE ]

fair_play - w pythonie nie działa nawet na prostych liczbach

Np.
Plik1.txt
1
2
3

Plik2.txt
2
3
4

Daje BŁĘDNY wynik. Widać komputer się myli:
Plik3.txt
1
3

2023-05-15 (10:45)

status makinero
Data rejestracji: 2017-04-10 00:00:00
Ilość postów: 8697

15235
wpis nr 1 466 489
[ CZCIONKA MONOSPACE ]

kleszek - ten kod co podałeś nie działa. Właśnie jest problem, który opisano tutaj:

https://realpython.com/invalid-syntax-python/
2023-05-15 (10:49)

status kleszek
Data rejestracji: 2006-05-27 00:00:00
Ilość postów: 4903

2047
wpis nr 1 466 490
[ CZCIONKA MONOSPACE ]

U mnie działa. Plik1 i Plik2 muszą być w tym samym katalogu co skrypt .py Klikasz na ten skrypt .py 2 razy. Skrypt generuje Plik3.txt W przykładzie, który podałeś
Plik1.txt
1
2
3

Plik2.txt
2
3
4

wynikiem działania skryptu jest
Plik3.txt
1
2023-05-15 (11:11)

status makinero
Data rejestracji: 2017-04-10 00:00:00
Ilość postów: 8697

15235
wpis nr 1 466 491
[ CZCIONKA MONOSPACE ]

@kleszek - zapisz ten skryp jako jeden plik i prześlij. Być może ja jak wklejam ten kod do notatnika i zapisuje z rozszerzeniem .py nie odwzorowuje dokładności co do jego formatu oraz czy należy zapisac ten skrypt z ANSI czy UTF-8. Ja mam domyślnie UTF-8 w Windows 10.

2023-05-15 (11:20)

status kleszek
Data rejestracji: 2006-05-27 00:00:00
Ilość postów: 4903

2047
wpis nr 1 466 492
[ CZCIONKA MONOSPACE ]

https://megawrzuta.pl/download/6112948157ca58dfa3b7cf2b47267070.html
2023-05-15 (11:39)

status makinero
Data rejestracji: 2017-04-10 00:00:00
Ilość postów: 8697

15235
wpis nr 1 466 495
[ CZCIONKA MONOSPACE ]

kleszek - pierwszy skrypt, który podałeś (NIE ZWRACA BŁĘDU, uruchamia się)

drugi skrypt "china.py", który podałeś, nie uruchamia się...
SyntaxError: invalid syntax

--- wpis edytowano 2023-05-15 11:40 ---

2023-05-15 (11:40)

status Lottonauta
Data rejestracji: 2012-09-03 00:00:00
Ilość postów: 2813

13559
wpis nr 1 466 496
[ CZCIONKA MONOSPACE ]

@makinero

Jak dużo masz tych plików do porównania?
2023-05-15 (11:43)

status makinero
Data rejestracji: 2017-04-10 00:00:00
Ilość postów: 8697

15235
wpis nr 1 466 498
[ CZCIONKA MONOSPACE ]


Lottonauta - mam dwa pliki, ale w przyszłości może być ich więcej.

2023-05-15 (11:45)

status kleszek
Data rejestracji: 2006-05-27 00:00:00
Ilość postów: 4903

2047
wpis nr 1 466 499
[ CZCIONKA MONOSPACE ]

To nie był skrypt do chińszczyzny !!! To skrypt, którym wygenerowałem plik3 dla przykładu z wpis nr 1 466 490
Skrypt do chińszczyzny to ten. Nie wiem czy działa. Sprawdź sam
https://megawrzuta.pl/download/db21286d756491ed25e884fe268fe467.html
2023-05-15 (11:54)

status kleszek
Data rejestracji: 2006-05-27 00:00:00
Ilość postów: 4903

2047
wpis nr 1 466 501
[ CZCIONKA MONOSPACE ]

Ale żeby to prawidłowo zadziałało to musisz (chyba) mieć dodaną w windowsie obsługę języka chińskiego. Tak tylko gdybam. Na pewno nie będę tego sprawdzał. Na liczbach ten skrypt (AAA) działa. Czy china działa prawidłowo sprawdź sam
2023-05-15 (12:00)

status makinero
Data rejestracji: 2017-04-10 00:00:00
Ilość postów: 8697

15235
wpis nr 1 466 502
[ CZCIONKA MONOSPACE ]

@kleszek jak może działać na liczbach? Oto przykład, że nie.

plik1
1
2
3

plik2
2
3
4

plik3
1

Jaki "1"???

Powinno być TYLKO "4"

2023-05-15 (12:12)

status kleszek
Data rejestracji: 2006-05-27 00:00:00
Ilość postów: 4903

2047
wpis nr 1 466 504
[ CZCIONKA MONOSPACE ]

Makinero, Ty już sam nie wiesz czego chcesz. W tym przykładzie napisałeś
Przykład

Plik1.txt
abc
def
ghi


Plik2.txt
jkl
mno
abc
def

Wynik powinien być taki:
Plik3.txt
ghi

Wynikiem jest wpis ghi który NIE ZNAJDUJE SIĘ w pliku2. Zgadza się ?

Więc analogicznie w przykładzie
plik1
1
2
3

plik2
2
3
4

plik3
1
wynikiem, którego brakuje w pliku2 w stosunku do pliku1 jest liczba 1 ... Zgadza się ?
2023-05-15 (12:18)

status makinero
Data rejestracji: 2017-04-10 00:00:00
Ilość postów: 8697

15235
wpis nr 1 466 506
[ CZCIONKA MONOSPACE ]

kleszek, przecież ja widze tylko liczbę "4" nową w pliku 2.

Pierwszy plik jest starszy a drugi nowszy.
Czyli tylko to co nowe w pliku 2 powinno być wynikiem w pliku 3

Z tego wszystkiego można się "zakręcić" w tych kombinacjach ale to jest finalne - to co właściwie chcę uzyskać

Ale mam w d*pie liczby, mnie interesują nazwy

chińsko-normalne , nawiasty (zwykłe i kwadratowe), myślniki, dash, spacje, kropki białe normalne, SPECJALNE ZNAKI itp.
taka jest przeróżna nazwa każdego pliku, takie znaki moga zawierać

Kiedyś inni się poddali, mówili, że to niewykonalne dla nich i jedynie pozostaje na "google" szukać rozwiażań.

--- wpis edytowano 2023-05-15 12:24 ---

2023-05-15 (12:25)

status kleszek
Data rejestracji: 2006-05-27 00:00:00
Ilość postów: 4903

2047
wpis nr 1 466 509
[ CZCIONKA MONOSPACE ]

"Czyli tylko to co nowe w pliku 2 powinno być wynikiem w pliku 3"

To dlaczego w tym przykładzie
Plik1.txt
abc
def
ghi


Plik2.txt
jkl
mno
abc
def

Wynik powinien być taki:
Plik3.txt
ghi

wynikiem jest ghi ?

| Dodaj wpis w tym temacie | Spis tematów | Wyniki lottoStrona: 1 2
Wyślij wiadomość do admina