[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理怎样把txt按逗号、句号,打乱重组?

高手们,有个TXT文件有篇小说,我、想按逗号、句号。打乱重新组成一部小说,怎么做啊!

例如:
    近乡情怯,用这个词来形容叶谦现在的心情再恰当不过了。坐在飞往华夏的飞机上,透过窗户看着下面一栋栋的高楼大厦,叶谦心情起伏不定。离开华夏的时候,叶谦还只不过是一个十七岁的孩子而已;如今,八年的时间转眼即逝。一个幼稚的少年,现在已经蜕变成一个成熟坚毅的年轻人,刀削的脸庞上有一道浅浅的疤痕,使得他原本俊秀的面孔,变得更加的充满英气。

    “先生,需要饮料吗?”一名漂亮的空姐走到叶谦的身边,对叶谦旁边座位上一位西装革履的中年人说道。
     。。。。。。。

最后效果,透过窗户看着下面一栋栋的高楼大厦,用这个词来形容叶谦现在的心情再恰当不过了。使得他原本俊秀的面孔,刀削的脸庞上有一道浅浅的疤痕,现在已经蜕变成一个成熟坚毅的年轻人,叶谦还只不过是一个十七岁的孩子而已;如今,叶谦心情起伏不定。使得他原本俊秀的面孔,“先生,需要饮料吗?”一名漂亮的空姐走到叶谦的身边,坐在飞往华夏的飞机上对叶谦旁边座位上一位西装革履的中年人说道。

就这样随机重组成一部新的小说!  怎么实现啊???   给支支招吧!谢谢    最好不要重复!

本帖最后由 ivor 于 2018-12-23 19:05 编辑
  1. #!/bin/python
  2. import random,re
  3. with open("data",'r') as file:
  4.   for i in file.readlines():
  5.     i.strip('\n')
  6.     arr = re.split(r'([,。])',i)
  7.     arr = ["".join(i) for i in zip(arr[0::2],arr[1::2])]
  8.     random.shuffle(arr)
  9.     arr.append('\n')
  10.     if len(arr) > 1 :
  11.         for j in arr:
  12.           print(j,end='')
  13.     else:
  14.         print(i)
复制代码
叶谦心情起伏不定。刀削的脸庞上有一道浅浅的疤痕,使得他原本俊秀的面孔,一个幼稚的少年,用这个词来形容叶谦现在的心情再恰当不过了。叶谦还只不过是一个十七岁的孩子而已;如今,八年的时间转眼即逝。现在已经蜕变成一个成熟坚毅的年轻人,离开华夏的时候,透过窗户看着下面一栋栋的高楼大厦,坐在飞往华夏的飞机上, 近乡情怯,变得更加的充满英气。
    “先生,对叶谦旁边座位上一位西装革履的中年人说道。需要饮料吗?”一名漂亮的空姐走到叶谦的身边,
[Finished in 0.0s]
坐在飞往华夏的飞机上,叶谦还只不过是一个十七岁的孩子而已;如今,透过窗户看着下面一栋栋的高楼大厦, 近乡情怯,变得更加的充满英气。使得他原本俊秀的面孔,用这个词来形容叶谦现在的心情再恰当不过了。现在已经蜕变成一个成熟坚毅的年轻人,叶谦心情起伏不定。八年的时间转眼即逝。
离开华夏的时候,一个幼稚的少年,刀削的脸庞上有一道浅浅的疤痕,
    “先生,
对叶谦旁边座位上一位西装革履的中年人说道。需要饮料吗?”一名漂亮的空姐走到叶谦的身边,[Finished in 0.0s]

TOP

回复 2# ivor


大神,你这能再分割的厉害点嘛,你这好像是针对每一段进行分割重组!能不能对整部小说按句号,逗号分割随机重组!可以分割的五六句为一段落,这样打开小说,就成了一部新的小说!句子不能重复!谢谢!

TOP

  1. PowerShell "$arr=(type 1.txt -ReadCount 0) -join '' -split '(“[^“”]*”)|(?<=[。,])'|?{$_ -ne $null}; sc 2.txt ((get-Random $arr -Count $arr.Count) -join '')"
复制代码
1

评分人数

    • smss: 这个有效技术 + 1

TOP

回复 4# WHY



牛逼,但是这打开之后不像本小说,要有段落!每一个段落后面的是句号!每一段落前面空两格!就是指处理完后生成的新小说,打开之后看一眼是一部新的小说!帮忙完善下吧!谢谢

TOP

回复  WHY



牛逼,但是这打开之后不像本小说,要有段落!每一个段落后面的是句号!每一段落前面空两 ...
xzy1006 发表于 2018-12-23 08:55



    你这是利用机器随机组合,然后要求合成出部新小说,但实事是机器只是按标点来重新组合,达不到你混淆别人小说后成为你小说的目的罢了

TOP

回复 6# smss

基本要求已经达到,就是我这100M的小说,处理的时间好像遥遥无期!

TOP

本帖最后由 WHY 于 2019-1-3 09:29 编辑
  1. $str = [IO.File]::ReadAllText('1.txt', [Text.Encoding]::Default);
  2. $arr = $str -replace '(?m)^\s+|\r\n' -split '(?<=[。,])(?!$)';
  3. $str = (get-Random $arr -Count $arr.Count) -join '' -replace ',$', '。';
  4. $str = [regex]::Replace($str, '。(?!$)', { If((get-Random) % 5){'。'}Else{"。`r`n  "} });
  5. [IO.File]::WriteAllText('2.txt', '  ' + $str, [Text.Encoding]::Default)
复制代码
2

评分人数

    • smss: 我为什么运行后无效技术 + 1
    • tz_being: 如果能在每个段落后面空一行就更牛B了技术 + 1

TOP

回复 8# WHY


    如果能在每个段落后面空一行就更牛B了

TOP

回复 9# tz_being


   第4行`r`n改为`r`n`r`n就行,无非就是多加个换行符.
1

评分人数

QQ 33892006

TOP

WHY 发表于 2018-12-23 18:41

我为什么运行后无效

TOP

回复 11# smss


    那是 PowerShell 脚本,我这里没有问题。

TOP

返回列表