Так как я не привык к прямо сейчас, я предлагаю более простое решение. Предположим, что ваш CSV-файл имеет 100 строк с 10 номерами в каждой строке, разделенных символом ','. Вы можете загрузить эти данные в виде массива со следующим кодом:
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
int A[100][10];
ifstream ifs;
ifs.open("name_of_file.csv");
string s1;
char c;
for(int k=0; k<100; k++)
{
getline(ifs,s1);
stringstream stream(s1);
int j=0;
while(1)
{
stream >>A[k][j];
stream >> c;
j++;
if(!stream) {break;}
}
}
}
Я думал, что вы можете сделать скрипт, используя этот код
import sys
import ast
class visitor(ast.NodeVisitor):
def visit_Try(self, node):
...
if sys.version.startswith("2"):
visit_TryFinally = visit_TryFinally
elif sys.version.startswith("3"):
visit_TryFinally = visit_Try
sys.version.startswith()
для проверки версии Python.
Mypy знает , как обрабатывать проверки версий Python , и вы можете использовать условные псевдонимы типа , чтобы выбрать правильный тип для правильной версии Python:
if sys.version_info[0] >= 3:
TryNode = ast.Try
else:
TryNode = ast.TryFinally
class Visitor(ast.NodeVisitor):
def visit_Try(self, node): # type: (TryNode) -> None
# ...
visit_TryFinally = visit_Try # python 2 compatible
[1116 ] Вы можете дополнительно сэкономить на времени выполнения тестов if sys.version_info
, поместив этот код в тест if TYPE_CHECKING:
.
В качестве примечания: если вы обрабатываете ast.Try
в Python 3 для отслеживания компонентов finally:
и except ...:
оператора try
, вы хотите обрабатывать как ast.TryFinally
, так и ast.TryExcept
в Python. 2, как и в Python 2.5, вы можете использовать только try...finally
или try...except
в одном выражении.