2015-05-29 2 views
0

У меня есть столбцы разбираемых шестнадцатеричные значения из Excel в файлУдаление данных после десятичной в Python

4.0 
123.0 
FFE 
5432535.0 

и этот список можно продолжить. Я пишу все данные в этом отформатированном файле заголовка C и НЕ хочу, чтобы какая-либо из данных находилась справа от десятичного или десятичного числа.

Например:

4.0 -> 4 
5432535.0 -> 5432535 

Какой самый лучший способ пойти об этом?

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

cell_val3 = sheet.cell_value(row_iteration, 20) 
+0

Пробовали ли вы 'раскол (» . ') '? – TigerhawkT3

+0

Я не уверен, что вы подразумеваете под шестнадцатеричными значениями здесь. Является ли 123.0 в вашем примере десятичным значением (сто двадцать три) или шестнадцатеричным значением (0x123), которое просто не имеет цифр A-F? Вы хотите преобразовать шестнадцатеричные значения в десятичные или десятичные в шестнадцатеричные? –

+0

псевдо hex. Я добавляю 0X в val в цикле. Он используется заголовочным файлом c, поэтому фактическое значение не имеет значения, поскольку оно физически записывается в файл. Я исправил свою проблему с помощью split – ryan

ответ

2

Просто переназначить строку к первому элементу после разделения на периоды:. s = s.split('.')[0]

+0

Вам не нужен тройной 'if..else' - просто сделайте' i = i.split ('.') [0] '. – TigerhawkT3

+0

@ TigerhawkT3 О, да. Если период не существует, 'split' вернет всю строку. –

0

Скажем, это хранится в переменной number. Я хотел бы сделать

number = str(number) 
number = number[:number.index('.')] 
number = int(number) 

Это выполняет срез переменных, начиная с первой позиции и заканчивая характером он находит перед «»; Вы, возможно, придется сделать ввода строки первого, в зависимости от того, как вы читаете данные в

+0

И я просто проверил это в оболочке; оно работает! – Dagrooms

+0

странно .... Traceback (самый последний вызов последнего): Файл "parser.py", строка 45, в cell_val3 = cell_val3 [: cell_val3.index ('')] ValueError: подстроки не найдено – ryan

+0

В этом нет ничего странного - он пытался найти индекс элемента, которого нет. Не каждая строка в вашем примере ввода содержит '.'. – TigerhawkT3