如果长度超过150个字符,请在Python脚本中使用sed命令从文件中删除行

时间:2018-08-24 08:52:31

标签: python-3.x subprocess

如果长度超过150个字符,我需要从文件中删除所有行。 我正在尝试使用subprocess.call函数在pyton脚本中使用sed命令,但是我有一些语法错误。 你能帮我吗? 谢谢

filename =  path+file

cmd = ["sed -i '/^.\{150\}./d' ./"+filename]
subprocess.call(cmd)

FileNotFoundError: [Errno 2] No such file or directory: "sed -i '/^.\\{150\\}./d' ./path/file.csv": "sed -i '/^.\\{150\\}./d' ./path/file.csv"

1 个答案:

答案 0 :(得分:1)

您不需要sed即可完成任务。

例如,使用python,您可以先读取文件,然后将过滤后的内容输出回去:

MAX_LEN = 150

with open(filename, 'r') as f:
    content = f.readlines()

with open(filename, 'w') as f:
    for line in content:
        if len(line) <= MAX_LEN:
            f.write(line)