如何在選擇了tkinter後同時開啟和操作多個文本文件?

2024-04-19 03:58:09 发布

您现在位置:Python中文网/ 问答频道 /正文

这里是Python noob:

我试图通过使用tkinter选择多个文本文件来加快我的文件编辑速度,但是我不知道如何打开它们并一次编辑它们以删除<_io.TextIOWrapper name='xyz.txt' mode='w' encoding='UTF-8'>

我的代码:

import re
from Tkinter import *
from tkFileDialog import askopenfilenames

filename = askopenfilenames()

f = open(filename, "r")

lines = f.readlines()

f.close()

f = open(filename, "w")

for line in lines:
    line = re.sub('<(.|\n)*?>', "", line)
    f.write(line)

f.close()

它与askopenfilename(不是复数)一起工作,我可以很好地删除不需要的字符串。你知道吗

任何暗示都将不胜感激!你知道吗


Tags: 文件fromimportre编辑closetkinterline
1条回答
网友
1楼 · 发布于 2024-04-19 03:58:09

您没有使用列表中的每个文件名。因此,您需要在从askopenfilenames()创建的列表上运行for循环。你知道吗

根据我的IDE中的工具提示askopenfilenames()返回一个列表。你知道吗

def askopenfilenames(**options):
    """Ask for multiple filenames to open

    Returns a list of filenames or empty list if
    cancel button selected
    """
    options["multiple"] = 1
    return Open(**options).show()

我将变量文件名改为文件名,因为它是一个列表,这更有意义。然后我在这个列表上运行了一个for循环,它应该可以正常工作。你知道吗

请尝试下面的代码。你知道吗

import re
from Tkinter import *
from tkFileDialog import askopenfilenames

filenames = askopenfilenames()

for filename in filenames:
    f = open(filename, "r")

    lines = f.readlines()

    f.close()

    f = open(filename, "w")

    for line in lines:
        line = re.sub('<(.|\n)*?>', "", line)
        f.write(line)

    f.close()

通过几个if语句,我们可以防止在不选择任何内容或选择不兼容的文件类型时出现的最常见错误。你知道吗

import re
from Tkinter import *
from tkFileDialog import askopenfilenames

filenames = askopenfilenames()

if filenames != []:
    if filenames[0] != "":
        for filename in filenames:
            f = open(filename, "r")

            lines = f.readlines()

            f.close()

            f = open(filename, "w")

            for line in lines:
                line = re.sub('<(.|\n)*?>', "", line)
                f.write(line)

            f.close()

相关问题 更多 >