Замена запятых точками и сохранение изменений, разве у меня не получается? - PullRequest
1 голос
/ 30 октября 2019

У меня есть 10 файлов, каждый из которых имеет 2 столбца с 1000000 строк. Я пытаюсь заменить все запятые в моих файлах на точки. Я использовал следующий скрипт

import glob
import os, os.path

list =[]
for filename in glob.glob("inputfile/*"):
    with open(filename, 'r') as searchfile:
        for line in searchfile:
            if ',' in line:
                replace=line.replace(",", ".")
                list.append(replace)
                f = open(filename, 'w')
                for item in list:
                    f.write(item)

. Он работает, но полученные файлы имеют 2 столбца и всего 365 строк, что означает, что я потерял 999635 строк моих данных.

Можете ли вы помочь мне, пожалуйста ??

 Edit:

 sample of my data
-0,0222950  0,1429029
-0,0216510  0,1419368
-0,0226171  0,1406487
-0,0222950  0,1393607

1 Ответ

1 голос
/ 30 октября 2019

Это один из подходов. Записать во временный файл и после обработки переименовать временный файл в исходный файл и удалить старый файл

Пример:

import glob
import os, os.path

base_path = "inputfile/"
for filename in glob.glob("{}\*".format(base_path)):
    path, file_name = os.path.split(filename)
    with open(filename, 'r') as searchfile, open(os.path.join(path, "temp_{}".format(file_name)), 'w') as searchfile_out:
        for line in searchfile:
            if ',' in line:
                line = line.replace(",", ".")
            searchfile_out.write(line)   #Write to temp file

    os.rename(filename, os.path.join(path, "OLD_{}".format(file_name)))    #Rename old file
    os.rename(os.path.join(path, "temp_{}".format(file_name)), filename)  #Rename temp file to original file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...