Jak uzyskać informacje o przenoszeniu danych z pliku pgn w języku Python? Jestem nowy w programowaniu i każda pomoc będzie doceniona.Wyodrębnianie informacji o ruchu z pliku pgn na komputerze Python
Odpowiedz
nie mogę dać żadnych wskazówek python-specyficzny, ale napisałem konwerter PGN niedawno w Javie, więc postaram oferować porady. Główną wadą łącza Miku jest to, że strona nie dopuszcza wariancji w plikach .pgn, które każda strona wydaje się różnić nieznacznie w dokładnym formacie.
Niektóre .pgn mieć numer ruch dołączony do samego (1.e4 zamiast 1. e4) przenieść więc jeśli tokenise ciąg, można sprawdzić położenie kropki, ponieważ występuje tylko w ruchu liczby.
wypracować wszystkie różne kombinacje ruch może masz. Jeśli ruch ma długość 5 znaków, może to być 0-0-0 (zamki queenside), Nge2 + (rycerz z g na e2 z szachownicą (+)/checkmate (#)), Rexb5 (Rook na e przyjmuje b5).
Najdłuższy ciąg posunięcie może być to 7 znaków (w przypadku, gdy trzeba określić rangę pochodzenia i plik i przechwytywania iz czekiem). Najkrótsza jest 2 znaki (zaliczka pionka).
Planuj wcześnie na castling i ruchy en passant. Możesz spóźnić się, że sposób, w jaki zbudowałeś swój program, nie przystosowuje się do nich.
Dane podane na początku (ELO ocen, lokalizacja itp) różnią się od pliku do pliku.
nie mam PGN parser dla Pythona, ale można uzyskać kod źródłowy PGN parsera dla XCode od this place może to być pomocne
Spróbuj pgnparser.
Przykład Kod:
import pgn
import sys
f = open(sys.argv[1])
pgn_text = f.read()
f.close()
games = pgn.loads(pgn_text)
for game in games:
print game.moves
- 1. Wyodrębnianie informacji z krotki (Python)
- 2. Wyodrębnianie informacji o ścieżce glifu z plików ttf
- 3. Wyodrębnianie adresu IP i informacji o porcie z sockaddr_storage
- 4. wyodrębnianie informacji o błędach z plików dziennika szyn
- 5. Symulacja ruchu sieciowego p2p na jednym komputerze
- 6. Wyodrębnianie "użytecznych" informacji ze zdań?
- 7. Wyodrębnianie informacji z HTML przy użyciu Mathematica
- 8. Wyodrębnianie ramek pliku .avi
- 9. Uzyskiwanie informacji o FFProbe z Pythonem
- 10. Wyodrębnianie tekstu z pliku PDF za pomocą PDFMiner w python?
- 11. wyodrębnianie z pliku tar o zduplikowanych nazwach wpisów
- 12. Usuwanie informacji z pliku HDF5
- 13. Wyodrębnianie danych numerycznych Python
- 14. ImportError: Brak modułu o nazwie cryptography.hazmat.backends - boxsdk na komputerze Mac
- 15. Instalowanie MySQL-python na komputerze Mac
- 16. Pakiety w języku Python i katalogi informacji o jajach
- 17. Instalowanie mapy bazowej na komputerze Mac/Python
- 18. TSQL: Przekroczenie limitu czasu na stole o dużym natężeniu ruchu
- 19. BUG-Chrome przełączanie z informacji o ramce
- 20. Uzyskiwanie informacji o uwierzytelnianiu SSL z Heroku
- 21. dostęp do informacji o konfiguracji gnome za pomocą python
- 22. Pisanie pliku MP4 na komputerze Mac z OpenCV ffmpeg
- 23. wyodrębnianie wartości z pliku za pomocą ant
- 24. Wyodrębnianie statycznie połączonych bibliotek z pliku wykonywalnego
- 25. Lokalizacja pliku my.cnf na komputerze MacOS
- 26. Autouzupełnianie pliku Makef na komputerze Mac
- 27. Dziwne zachowanie python na komputerze z procesorem ARM
- 28. Uzyskaj czas utworzenia pliku w Pythonie na komputerze Mac
- 29. Parse.com - odświeżanie informacji o użytkowniku
- 30. Wyodrębnianie pliku zip do pamięci?
Dotychczas można zwrócić łańcuch porusza się w tej postaci: „1.e4 C6 2.d3 D5 3.Nd2 E5 4.Ngf3 Nd7 5.d4 dxe4 6 .Nxe4 exd4 7.Qxd4 Ngf6 8.Bg5 Be7 ... itd. Co muszę teraz zrobić, to zwrócić ciąg znaków, który podsumowuje informacje w tekście ruchów w tej formie: "Biały przesuń pionka na e2 na e4. \ NBlack przesunął pionka na e7 na e5. " –
Również w przypadku niektórych plików ciąg jest zwracany w tej postaci: '1. e4 e5 2. f4 exf4 3. Nf3 g5 4. h4 g4 5. Ne5 Nf6 6. d4 d6 7. Nd3 Nxe4 ... itd. Po numerze ruchu jest spacja. –