Как удалить строку, начинающуюся с «1», во многих текстовых файлах с python - PullRequest
0 голосов
/ 11 марта 2020

У меня есть по крайней мере 3700 текстовых файлов (фактически ярлыков) в каталоге с таким же количеством изображений jpg / jpeg. среди всех этих текстовых файлов несколько сотен из них имеют текст:

1 0.19140625 0.50078125 0.3078125 0.9484375

Я хочу удалить такую ​​строку, начиная с 1, в каждом текстовом файле, в котором он присутствует. Я попытался выполнить следующее:

import os
import glob
import errno
path = '~/Documents/txt/*.txt'
path1 = '~/Documents/txt/'
files = glob.glob(path)
txtfile = []
temp_path = os.path.join(path1, 'temp.txt')
for name in files:
    try:
        with open(name, 'r') as f, open(temp_path) as temp:
            for line in f:
                if line.strip() == "1":
                    continue
                temp.write(line)

    except IOError as exc:
        if exc.errno != errno.EISDIR:
            raise
#print(txtfile)

Ответы [ 2 ]

1 голос
/ 11 марта 2020
import glob
import os

path = os.path.dirname(os.path.abspath(__file__))
for name in glob.glob(path+'/*.txt'):
    raw_data = open(name, 'r')
    data_list = raw_data.read().splitlines()
    with open(name, "w") as new_file:
        for row in data_list:
            if row.startswith("1") is False:
                new_file.write(row + '\n')
0 голосов
/ 12 марта 2020

Я придумал следующее:

path = '/home/mzaid/Documents/txt/*.txt'
for name in glob.glob(path):
    try:
        with open(name, 'r+') as fl:
            for line in fl:
                if line.startswith("1"):
                    #not sure what to do here
    except IOError as exc:
        if exc.errno != errno.EISDIR:
            raise
...