(下次想看什么,请在评论区留言!)
这里用到了wxpython界面
装wx库,可pycharm在终端输入以下命令(清华大学镜像)
pip install -U wxPython -i https://pypi.tuna.tsinghua.edu.cn/simple
下面是源代码
import wx
import os
class MergeFilesFrame(wx.Frame):
def __init__(self):
super().__init__(None, title="Merge Text Files", size=(400, 200))
panel = wx.Panel(self)
self.file_picker = wx.Button(panel, label="Select Text Files", size=(200, -1))
self.merge_button = wx.Button(panel, label="Merge", size=(100, -1))
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(wx.StaticText(panel, label="Select Text Files to Merge:"), 0, wx.ALL, 10)
sizer.Add(self.file_picker, 0, wx.EXPAND|wx.ALL, 10)
sizer.Add(self.merge_button, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 10)
panel.SetSizer(sizer)
self.file_picker.Bind(wx.EVT_BUTTON, self.on_select_files)
self.merge_button.Bind(wx.EVT_BUTTON, self.on_merge)
def on_select_files(self, event):
with wx.FileDialog(self, "Select Text Files to Merge", wildcard="Text files (*.txt)|*.txt",
style=wx.FD_OPEN | wx.FD_MULTIPLE) as fileDialog:
if fileDialog.ShowModal() == wx.ID_CANCEL:
return
self.selected_files = fileDialog.GetPaths()
if not self.selected_files:
wx.MessageBox("Please select at least one file to merge!", "Error", wx.OK | wx.ICON_ERROR)
return
# Display selected files
selected_files_text = '\n'.join(self.selected_files)
wx.MessageBox(f"Selected Files:\n{selected_files_text}", "Selected Files", wx.OK | wx.ICON_INFORMATION)
def on_merge(self, event):
try:
selected_files = self.selected_files
except AttributeError:
wx.MessageBox("Please select files first!", "Error", wx.OK | wx.ICON_ERROR)
return
with wx.DirDialog(self, "Select Target Folder for Merged File", style=wx.DD_DEFAULT_STYLE) as dirDialog:
if dirDialog.ShowModal() == wx.ID_CANCEL:
return
target_folder = dirDialog.GetPath()
merged_file_path = os.path.join(target_folder, "merged_output.txt")
with open(merged_file_path, 'w', encoding='utf-8') as output:
for file_path in selected_files:
with open(file_path, 'r', encoding='utf-8') as file:
for line in file:
output.write(line)
wx.MessageBox(f"Files merged successfully!\nMerged file saved at: {merged_file_path}", "Success", wx.OK | wx.ICON_INFORMATION)
if __name__ == "__main__":
app = wx.App(False)
frame = MergeFilesFrame()
frame.Show()
app.MainLoop()
运行结果如下:
此外,还可以用pyinstaller来打包为exe可执行文件,生成的exe在dist目录里。
pyinstaller --onefile --noconsole 文件合并(你的文件名).py
这样你就获得了一个txt文件合并软件!!
感谢观看!!!