首页 > 解决方案 > 删除当前文件夹中所有文件以 < 开头的所有行

问题描述

这就是我到目前为止所拥有的。但它只是挂起。

import os
import sys
import re

directory_path=os.path.dirname(os.path.abspath(__file__))

for root, dirs, files in os.walk(directory_path):
     for file in files:
            s = ''.join(sys.stdin.readlines())
            s = re.sub(r'(?m)^\<.*\n?', '', s)

拿 2,这仍然不起作用,但可能更接近一点?

import fileinput
import glob
import sys
import os

path = os.path.dirname(os.path.abspath(__file__))
search = "<"
replace = " "

for line in fileinput.input(glob.glob(path), inplace=1):
    sys.stdout.write(line.replace(search, replace))

标签: python-3.x

解决方案


您可以使用 python 内置函数&readlines来满足您的要求。filterwritelines

我相信下面的代码可以满足您的目的。

import os

source_dir = 'C:/Users/rlal1/Desktop/test_folder'
files = os.listdir(source_dir)

for each_file in files:
    with open(os.path.join(source_dir, each_file), 'r+') as fp:
        all_lines = fp.readlines()
        filtered = filter(lambda x: not x.startswith('<'), all_lines)
        fp.seek(0)
        fp.truncate(0)
        fp.writelines(filtered)

推荐阅读