Chciałbym móc uzyskać dostęp do określonych linii pliku csv poprzez czytnik csv. Na przykład czwarta linia. Czy istnieje sposób, aby to zrobić z modułem czytnika csv Pythona?subskrybowanie określonej linii z czytnika csv Pythona?
Odpowiedz
Musisz tylko przeanalizować cały plik CSV, a następnie użyć normalnego indeksowania sekwencyjnego.
przeciwnym razie można zrobić coś takiego
def my_filter(csv_file, lines):
for line_number, line in enumerate(csv_file):
if line_number in lines:
yield line
my_file = open("file.csv")
my_reader = csv.reader(my_filter(my_file, (3,)))
pamiętać, że nie można uniknąć analizowania całego pliku, w sposób lub w innym, ponieważ linie są o zmiennej długości. Liczba linii rośnie tylko wtedy, gdy "\ n" jest znalezione i musi być znalezione w postaci znak po znaku.
Filtr ten nie będzie działał, jeśli w cudzysłowie w pliku csv pojawią się znaki nowego wiersza. Prawdopodobnie lepiej jest przetworzyć cały plik na listę i pobrać z niego indeksy:
my_file = open("file.csv")
my_reader = csv.reader(my_file)
my_line = list(my_reader)[3]
aktualizacja Najważniejsze: jeśli potrzebna jest swobodny dostęp do informacji, które są zbyt duże, aby zmieścić się w pamięci, po prostu uważają dumpingu go do bazy danych SQL zamiast. Oszczędnie, jeśli wymyślimy wiele kół.
- 1. Przejdź pierwszej linii przy użyciu Open czytnika CSV
- 2. Zachowanie czytnika csv z Brak i pusty ciąg
- 3. Czy czytnik csv Pythona może zostawić cytaty?
- 4. Uruchom tryb interakcyjny na określonej linii skryptu
- 5. Kontrola Androida dla czytnika linii papilarnych jest dostępna pod numerem
- 6. Przełamywanie linii Pythona na wiele linii?
- 7. Rysowanie linii wygładzanej z biblioteką obrazowania Pythona
- 8. Subskrybowanie zdarzenia podczas tworzenia obiektu w C#
- 9. Zapisywanie danych z listy Pythona do csv z wierszami
- 10. Zmień określoną wartość w pliku CSV za pomocą Pythona
- 11. Podział linii w rozpiętości o określonej szerokości?
- 12. Uzyskaj ostatnie 10000 linii pliku csv.
- 13. Używanie Pythona do pisania na określonych kolumnach w pliku CSV
- 14. Feedparser - odzyskaj stare wiadomości z Czytnika Google
- 15. moduł Pythona CSV - cytuje iść brakuje
- 16. Parse CSV z Django i csv.DictReader
- 17. Pisanie listów Pythona do kolumn w CSV
- 18. Czytanie plików .csv na listach Pythona
- 19. drukowanie nowej linii w komórce pliku CSV
- 20. Pomijanie linii, csv Dict Reader Python
- 21. Pisanie listy Pythona do pojedynczej kolumny CSV
- 22. Odczytywanie plików CSV z pliku zip po linii w czasie
- 23. Zamykanie zagnieżdżonego czytnika
- 24. Zrzut csv z sqlalchemy
- 25. Subskrybowanie obiektów Objective-C, iOS5 i GCC
- 26. Przykład czytnika smartfonów Blackberry
- 27. Parsowanie zwykłego pliku tekstowego do pliku CSV przy użyciu Pythona
- 28. Wypełnij tabelę danych z czytnika danych
- 29. Problem z uwierzytelnianiem czytnika Google Reader
- 30. Jak korzystać z właściwości scanCrop czytnika ZBar?
na pewno. plik jest o wiele za duży, żeby od razu przeczytać całość w pamięci. Planuję uzyskać dostęp do wszystkich linii, ale także trzeba przeskakiwać plik i unikać ładowania całego obiektu na raz. – ahhh
SO, rozwiązanie filtrujące pomoże ci - (o ile nie masz wewnętrznych wartości literowych \ n). Jeśli potrzebujesz dostępu do zlecenia, możesz użyć rozwiązania filtrującego do utworzenia listy, jak w ostatnim przykładzie. – jsbueno