Найти - Пользователи
Полная версия: замена символов в файе
Начало » Python для новичков » замена символов в файе
1
sshkrv
добрый день, форумчане!

я считываю данные из файла в виде двух столбцов. файл прикреплен.
вот код:

def getname(i,j): 
    data_dir = os.path.join("/home/ipython/data/abs14")
    subdir = "30.04(hs-au)abs"
    filename = os.path.join("PHE7_0{m}{n}.SP").format(m=i, n=j)
    input_name = os.path.join(data_dir, subdir, filename)
    return input_name
            # функция для считывания файла
input_name = getname(i,j)
data = np.loadtxt(input_name, dtype=float)
            #это у меня сидит в цикле

на что он мне выдает
ValueError: could not convert string to float: –

файл ТОЧНО читается и все хорошо, я проверял. но мне кажется проблема в том, что нек-рые данные записаны в виде 1.306E4, а нек-рых вообще вместо точки стоят запятые.

кто-нибудь знает как лучше всего в файле заменить запятые на точки?
и как бороться с тем, что числа записаны в виде 1.306E4?


буду очень признателен!
py.user.next
sshkrv
а нек-рых вообще вместо точки стоят запятые
В файле нет запятых.

sshkrv
кто-нибудь знает как лучше всего в файле заменить запятые на точки?
Через sed.

sed -i~ 's/,/./g' filename


sshkrv
data_dir = os.path.join("/home/ipython/data/abs14")
sshkrv
filename = os.path.join("PHE7_0{m}{n}.SP").format(m=i, n=j)
Зачем используешь os.path.join(), если он не применяется?


sshkrv
и как бороться с тем, что числа записаны в виде 1.306E4?
Что пишет, то и должно быть поправлено, чтобы не писало в экспоненциальной форме.
А вообще, можно и так оставить.
>>> float('1.306E4')
13060.0
>>>
sshkrv
во всем разобрался! была моя ошибка. спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB