Replace All Filepath Except Filename in Text file using Python
我有如下文本文件。除了保留文件名,我想删除所有文件路径。我需要通读文件并删除任何文件路径。它只是向用户显示文件内容为错误。因此,使用文件路径显示是一个安全问题。
例如:
来自:
Lorem Ipsum Dolor Sit Amet,Concetteur Adipiscing Elit,Sed Do Eiusmod公司临时工,临时工/home/student/users/user_3/question_4/test.py magna aliqua.但伊尼姆和米尼姆·维尼姆,诺斯特鲁德实习实验室随之而来。杜伊斯·奥特·艾尔·多尔在《欲望都市》中受到谴责cillum dolore eu fugiat nulla pariatur./home/student/users/user_3/question_4/test.py excepteur sint occaccat cupidatat non不畏艰险,无忧无虑,无忧无虑。
到:
Lorem Ipsum Dolor Sit Amet,Concetteur Adipiscing Elit,Sed Do Eiusmod公司临时工,临时工试验.py magna aliqua.但只有一个小的鹿肉,诺斯特鲁德实习实验室随之而来。杜伊斯·奥特·艾尔·多尔在《欲望都市》中受到谴责cillum dolore eu fugiat nulla pariatur.test.py,excepteur sint occacacat cupidatat non不畏艰险,无忧无虑,无忧无虑。
我的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | import re data = open('error.txt') d = open('error1.txt', 'a+') for line in data.readlines(): if re.search(r'^[\S]+[_\d][\S]/', line): d.write(re.sub(r'^[\S]+[_\d][\S]/', '', line)) elif re.search(r'^[\w]+[\s][\S][\S]+[_\d]\S/', line): d.write(re.sub(r'^[\w]+[\s][\S][\S]+[_\d]\S/', '', line)) else: d.write(line) d.close() data.close() print open('error1.txt').read() |
试试这个。
1 2 3 4 5 6 7 8 | import re ere = re.compile(r'(^|["\s\W])\/[\w\.\/]+?\/([^\/"\s]+)(["\s:]|$)', re.I) def get_text_without_filepath(filename): with open(filename, 'r') as f: return ere.sub("\g<1>\g<2>\g<3>", f.read()) get_text_without_filepath('my_file_with_error.txt') |