Как прочитать файл, игнорируя определенное количество строк и столбцов?

Как можно оптимизировать процесс чтения данных из файла, чтобы избежать двойного считывания, при условии, что требуется узнать количество строк и столбцов файла перед считыванием содержимого?
  • 8 мая 2024 г. 9:50
Ответы на вопрос 2
Для чтения файла с пропуском определенного количества строк и столбцов можно воспользоваться различными библиотеками для работы с файлами в Python, например, pandas.

Для чтения файла с пропуском строк и столбцов с помощью pandas можно использовать методы `skiprows` и `usecols`:

```python
import pandas as pd

# Пропуск первых двух строк и первого столбца при чтении файла
data = pd.read_csv('file.csv', skiprows=2, usecols=range(1, None))
```

Для оптимизации процесса чтения данных из файла, если нужно заранее узнать количество строк и столбцов, можно использовать методы для быстрого предварительного анализа файла:

```python
import pandas as pd

# Получение информации о файле без загрузки данных
file_info = pd.read_csv('file.csv', nrows=0)  # Прочитать только заголовки
num_rows = file_info.shape[0]  # Количество строк
num_cols = file_info.shape[1]  # Количество столбцов

# Чтение файла с пропуском строк и столбцов
data = pd.read_csv('file.csv', skiprows=2, usecols=range(1, None))
```

Таким образом, можно узнать количество строк и столбцов файла, пропустить необходимое количество строк и столбцов при чтении файла, избежать двойного считывания и оптимизировать процесс чтения данных.
Читайте построчно до конца файла. У вас уже эта проверка есть там, где вы fscanf делаете - вы же проверяете, что оно вернуло? А столбцов у вас всегда 3. 

Если проблема с тем, что у вас массив, куда вы читаете, ограниченного размера, то можно, например, завести его достаточно большой длины, с запасом. Как у вас там 101 символ выделен под кажую строку. А еще лучше, если у вас C++, использовать std::vector - ему можно длину динамически менять. Если же это C - то пишите свою собственную логику увеличения массива, через malloc и realloc по мере заполнения.
Похожие вопросы