Извлечение предметов разных макетов из списков

Для меня ни один из других решений не работал (включая стратегию очистки / восстановления). Я нашел другое решение для решения проблемы, которое заключается в закрытии и повторной открытии Visual Studio.

Я полагаю, это заставляет Visual Studio повторно загружать решение и все проекты, перепроверяя зависимости в этом процессе.

0
задан icherevkov 17 January 2019 в 14:06
поделиться

3 ответа

Вопреки другим ответам здесь, я думаю, вы должны использовать модуль csv. Если ваши файлы содержат заголовки или поля в кавычках, вы будете намного счастливее, чем если бы вы попытались изменить свое решение после того, как факт:

with open('filename') as infile:
    r = csv.reader(infile, delimiter=' ', skipinitialspace=True)
    for row in r:
        print(row)

Ваш файл выглядит так, как будто на вашем компьютере он разделен табуляцией. В этом случае вы измените delimiter=' ' на delimiter='\t' в приведенном выше.

Вы также можете использовать , который имеет более общий режим пробелов

df = pd.read_csv("filename", header=None, delim_whitespace=True)
0
ответ дан Patrick Haugh 17 January 2019 в 14:06
поделиться

Вот код, который вы можете использовать

Также пара моментов, связанных с вашим кодом csv.reader, является излишним. Все делается с помощью просто встроенных модулей - это не внешние зависимости.

Также использование имен переменных, таких как read, не очень хорошая идея.

lines = """1 1011.720000 1830.340000            0            0            0           191340          ?   1.000000
 2 1011.720000 1830.340000            0            0            0           725670          ?   2.000000
 3 1011.720000 1830.340000            0            0            0       1.4378e+06          ?   3.000000
 4 1011.720000 1830.340000            0            0            0        2.178e+06          ?   4.000000
 5 1011.720000 1830.340000            0            0            0       2.8806e+06          ?   5.000000
 6 1011.720000 1830.340000            0            0            0       3.5353e+06          ?   6.000000
 7 1011.720000 1830.340000            0            0            0       4.1598e+06          ?   7.000000
 8 1011.720000 1830.340000            0            0            0       4.7729e+06          ?   8.000000
 9 1011.720000 1830.340000            0            0            0       5.3924e+06          ?   9.000000
10 1011.720000 1830.340000            0            0            0       6.0281e+06          ?  10.000000"""

for line in lines.split("\n"):
    toks = line.split() # This should split the line into tokens separated by one or more white space characters. 

    if len(toks) == 9: # Just to make sure there are enough tokens. 
        # do whatever you want
        print (toks[6])
0
ответ дан gabhijit 17 January 2019 в 14:06
поделиться

Благодарность @Eugen Constantin Dinca & amp; @tobias_k для упрощения кода

with open('csv.dat', "rb") as infile:
  for row in infile:
    print row.split()

Вывод:

['1', '1011.720000', '1830.340000', '0', '0', '0', '191340', '?', '1.000000']
['2', '1011.720000', '1830.340000', '0', '0', '0', '725670', '?', '2.000000']
['3', '1011.720000', '1830.340000', '0', '0', '0', '1.4378e+06', '?', '3.000000']
['4', '1011.720000', '1830.340000', '0', '0', '0', '2.178e+06', '?', '4.000000']
['5', '1011.720000', '1830.340000', '0', '0', '0', '2.8806e+06', '?', '5.000000']
['6', '1011.720000', '1830.340000', '0', '0', '0', '3.5353e+06', '?', '6.000000']
['7', '1011.720000', '1830.340000', '0', '0', '0', '4.1598e+06', '?', '7.000000']
['8', '1011.720000', '1830.340000', '0', '0', '0', '4.7729e+06', '?', '8.000000']
['9', '1011.720000', '1830.340000', '0', '0', '0', '5.3924e+06', '?', '9.000000']
['10', '1011.720000', '1830.340000', '0', '0', '0', '6.0281e+06', '?', '10.000000']
0
ответ дан icherevkov 17 January 2019 в 14:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: