Super.Bear 2021-10-28 17:44 采纳率: 75%
浏览 252
已结题

python 文件排版,怎么控制写入在对应文件的位置(要写吐了,真是服了)

英文电影中参演人员名单一般以某种方式进行排版显示。给定一个未排版的文件listin.txt,该文件中每行参演人员名单由冒号':'分隔成前后两部分,但格式杂乱无章,单词(由除空格和水平制表符之外的其它字符构成)之间可能有多个空格或水平制表符分隔。编写程序,要求将其按如下排版规则排版输出到另一个文件listout.txt中:

1.从标准输入读取一整数,作为排版后所有各行冒号':'在一行中的固定位置;假设输入的整数肯定大于排版后所有各行冒号':'前的字符个数,位置从1开始计数;

2.冒号':'左边的单词串以冒号为基准右对齐,左边的第一个单词之前如果有多余的位置,则以空格填充;冒号':'右边的单词串以冒号':'为基准左对齐,最后一个单词后只有回车换行符,不再有其它字符;

3.冒号':'左右两边的单词间都只有一个空格分隔,并且要求冒号两边各有一个空格与单词分隔。

假设输入文件中每行字符个数不超过100。

img

img

  • 写回答

1条回答 默认 最新

  • 求实创造 2021-10-28 18:02
    关注

    文本中的每一行被冒号分开,基础格式为 xxxx:yy,那么通过冒号对齐文本就需要我们根据给出的冒号位置,在xxxx之前补空格,当所有的xxxx都是相同长度时,yy也就对齐了

    def type_set(file_name, out_file_name, num):
        data_in = open(file_name)
        data_out = open(out_file_name, 'w')
        for line in data_in:
            str1 = line.split(':')[0].strip()
            str1 = ' '.join(str1.split()) + ' '
            while len(str1) < num:
                str1 = ' ' + str1
            str2 = line.split(':')[1].strip()
            str2 = ' ' + ' '.join(str2.split())
            data_out.write(str1 + ':' + str2 + '\n')
        data_in.close()
        data_out.close()
    
    
    type_set('listin.txt', 'listout.txt', 40)
    
    

    输入:

    img


    输出:

    img

    如果答案对你有帮助,可以给我给我个采纳吗,谢谢!!(点击我这个回答右上方的【采纳】按钮)。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月6日
  • 已采纳回答 10月29日
  • 创建了问题 10月28日

悬赏问题

  • ¥15 根据以下文字信息,做EA模型图
  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)
  • ¥15 关于并联谐振电磁感应加热
  • ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
  • ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
  • ¥60 关机时蓝屏并显示KMODE_EXCEPTION_NOT_HANDLED,怎么修?
  • ¥66 如何制作支付宝扫码跳转到发红包界面