簡體   English   中英

使用Python替換文本文件中除文件名之外的所有文件路徑

[英]Replace All Filepath Except Filename in Text file using Python

我有如下文本文件。 我想刪除所有文件路徑,只保留文件名。 我需要通讀文件並刪除任何文件路徑。 它只是為了向用戶顯示文件內容錯誤。 因此,顯示文件路徑是一個安全問題。

例如:

從:

Lorem ipsum dolor就座,安全地協助精英人士,seu do eiusmod tempor incididunt ut Labore et dolore /home/student/users/user_3/question_4/test.py magna aliqua。 盡量不要抽煙,不要因抽煙而鍛煉。 Duis aute irure dolor in reprehenderit in volttable velit esse cillum dolore eu fugiat nulla pariatur。 /home/student/users/user_3/question_4/test.py接受者 sint occaecat cupidatat並非偶然,只能在因犯罪現場而被禁閉的情況下動手做實驗。

至:

Lorem ipsum dolor剛坐下,私服了精英學校,sed do eiusmod tempor indicidunt ut Labore et dolore test.py magna aliqua。 盡量不要抽煙,不要因抽煙而鍛煉。 Duis aute irure dolor in reprehenderit in volttable velit esse cillum dolore eu fugiat nulla pariatur。 test.py不明顯的聖人,可能會因犯有刑事責任而被視為犯罪。

我的代碼:

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()

試試這個。

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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM