首页 编程教程正文

文件段落排版

piaodoo 编程教程 2020-02-22 22:14:46 1294 0 python教程

本文来源吾爱破解论坛

本帖最后由 ymhld 于 2020-1-27 17:29 编辑

一、编排原因:
在悬赏区答复时,因为下载的文件排版格式比较乱,尤其是段落排版不是很好,因此想用刚学的python进行一下排版

二、编排原则:
去掉头尾无用的空格等,自动在行尾遇到。”两种字符,进行段落划分。如遇到行首有“,则将”划分至上一段落。

三、编排处理:
首先做了文字处理部分,使其达到基本要求。
最后加入TK控件,使界面更友好,打开、处理、保存文件、提示等操作更直观。

四、应用注意:
txt文档的处理要用UTF-8格式。
如果有从网上下载的格式比较乱的文档,也可以用此方法进行编排。
在处理的同时,已经存储了,格式为原文档的名字后加个1

代码如下:(修正一处,要不保存是保存两遍的)

#-*-coding:GBK -*-
#


print("                                                              ")
print("      _____    _____      _____  _____                   ____ ")
print(" ___|\     \  |\    \    /    /||\    \   _____         |    |")
print("|    |\     \ | \    \  /    / || |    | /    /|        |    |")
print("|    | |     ||  \____\/    /  /\/     / |    ||        |    |")
print("|    | /_ _ /  \ |    /    /  / /     /_  \   \/  ____  |    |")
print("|    |\    \    \|___/    /  / |     // \  \   \ |    | |    |")
print("|    | |    |       /    /  /  |    |/   \ |    ||    | |    |")
print("|____|/____/|      /____/  /   |\ ___/\   \|   /||\____\|____|")
print("|    /     ||     |`    | /    | |   | \______/ || |    |    |")
print("|____|_____|/     |_____|/      \|___|/\ |    | | \|____|____|")
print(" \(    )/           )/            \(   \|____|/     \(   )/  ")
print("   '    '            '              '      )/         '   '   ")
print("                                           '                 ")
"""

"""
import tkinter as tk
from tkinter import filedialog, dialog,messagebox
import os


window = tk.Tk()
window.title('文件段落整理')  # 标题
window.geometry('600x380+600+200')  # 窗口尺寸
window.resizable(width=False, height=False) #限制改变尺寸
#A9E024
file_path = ''

file_text = ''
dirname=''
#FFFFFF
text1 = tk.Text(window, width=50, height=10, bg='#A9E024', font=('Arial', 12))
text1.place(x=10,y=10,width=580,height=320)



def open_file():
    '''
    打开文件
    :return:
    '''
    global file_path
    global file_text
    global dirname
   
    contents = text1.get(0.0,tk.END).strip()
    if contents !="":
        text1.delete('1.0', tk.END)
    if dirname=="":
        dirname=os.getcwd()
    file_path = filedialog.askopenfilename(title=u'打开文件',
    filetypes=[('TXT', '*.TXT'), ('All Files', '*')],
    initialdir=dirname)
    print('打开文件:', file_path)
    if file_path is not None:
        with open(file=file_path, mode='r+', encoding='UTF-8') as file:
            file_text = file.read()
        text1.insert('insert', file_text)


def save_file():
    global file_path
    global file_text
    global filename1
    global dirname
    contents = text1.get(0.0,tk.END).strip()
    #print (len(contents))
    if contents=="":
        tk.messagebox.showinfo('文件不存在','请打开文件操作!')
        open_file()
        deal_file()
    filename2=os.path.basename(filename1)
    file_path1 = filedialog.asksaveasfilename(title=u'保存文件',
    initialfile=filename2,
    filetypes=[('TXT', '*.TXT'), ('All Files', '*')],
    initialdir=dirname)
    print('保存文件:', file_path1)
    file_text = text1.get('1.0', tk.END)
    if file_path1 is not None:
        with open(file=file_path1, mode='w', encoding='UTF-8') as file:
            file.write(file_text)
        text1.delete('1.0', tk.END)
        tk.messagebox.showinfo('文件存储完毕',file_path1+'保存完成')
        print('保存完成')

def deal_file():
        global file_path
        global file_text
        global dirname
        global filename1
        if file_path=="":
                open_file()
        dirname,filename=os.path.split(file_path)
        print ('处理文件名',filename)
        line1="    "
        with open(file_path,'r',encoding='UTF-8') as file_object:
                lines = file_object.readlines()
        for line in lines:  #lines[0:10]:
                line=line.strip()
                #print(line.strip())
                if len(line)==0:
                        pass
                else:
                        if line[-1:]=="。" or line[-1:]=="”" :
                                line=line+"\n    "
                                #print (line[-4:-1],"***",line[-4:-1],"***")
                        if line[0]=="”":
                                if line1[-4:-1]=="    "[-4:-1]:
                                        line1=line1[:-5]+"”\n    "
                                       
                                else:
                                        line1=line1+"”"
                                line=line[1:]
                        line1=line1+line
        #print(line1)
        text1.delete('1.0', tk.END)
        text1.insert('insert', line1)
        
        filename1,filesuffix = os.path.splitext(filename)
        filename1=os.path.join(dirname,filename1+"1"+filesuffix)
        print (filename1)
        with open(filename1,'w',encoding='UTF-8') as file_object:
                file_object.write(line1)  




bt1 = tk.Button(window, text='打开文件', width=15, height=2,command=open_file)
bt1.place(x=80,y=340,width=70,height=30)
bt3 = tk.Button(window, text='整理文件', width=15, height=2, command=deal_file)
bt3.place(x=265,y=340,width=70,height=30)
#bt3.grid(row=0,column=1)
#bt3.pack()
bt2 = tk.Button(window, text='保存文件', width=15, height=2, command=save_file)
bt2.place(x=450,y=340,width=70,height=30)
#bt3.grid(row=0,column=2)
#bt2.pack()

window.mainloop()  # 显示


编译后的文件:(zip和exe)


https://www.lanzous.com/i8vrqwj

https://www.lanzous.com/i8vrqzc


测试用txt

https://www.lanzous.com/i8uwlhi

应用效果:

GIF 2020-1-25 18-02-40.gif (418.93 KB, 下载次数: 0)

下载附件  保存到相册

2020-1-25 18:03 上传




排版前后比较:

QQ截图20200125180623.png (192.27 KB, 下载次数: 0)

下载附件  保存到相册

2020-1-25 18:07 上传







后记:
今天去优秀会员评选的帖子里去转时,发现了同款软件,一并发给大家
https://www.52pojie.cn/thread-918163-1-1.html

本帖被以下淘专辑推荐: · Win 实用资源|主题: 319, 订阅: 179 · 实用工具|主题: 10, 订阅: 2

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7922.html

搜索