标题: [文本处理] 批处理怎样把txt按逗号、句号,打乱重组? [打印本页]
作者: xzy1006 时间: 2018-12-22 14:29 标题: 批处理怎样把txt按逗号、句号,打乱重组?
高手们,有个TXT文件有篇小说,我、想按逗号、句号。打乱重新组成一部小说,怎么做啊!
例如:
近乡情怯,用这个词来形容叶谦现在的心情再恰当不过了。坐在飞往华夏的飞机上,透过窗户看着下面一栋栋的高楼大厦,叶谦心情起伏不定。离开华夏的时候,叶谦还只不过是一个十七岁的孩子而已;如今,八年的时间转眼即逝。一个幼稚的少年,现在已经蜕变成一个成熟坚毅的年轻人,刀削的脸庞上有一道浅浅的疤痕,使得他原本俊秀的面孔,变得更加的充满英气。
“先生,需要饮料吗?”一名漂亮的空姐走到叶谦的身边,对叶谦旁边座位上一位西装革履的中年人说道。
。。。。。。。
最后效果,透过窗户看着下面一栋栋的高楼大厦,用这个词来形容叶谦现在的心情再恰当不过了。使得他原本俊秀的面孔,刀削的脸庞上有一道浅浅的疤痕,现在已经蜕变成一个成熟坚毅的年轻人,叶谦还只不过是一个十七岁的孩子而已;如今,叶谦心情起伏不定。使得他原本俊秀的面孔,“先生,需要饮料吗?”一名漂亮的空姐走到叶谦的身边,坐在飞往华夏的飞机上对叶谦旁边座位上一位西装革履的中年人说道。
就这样随机重组成一部新的小说! 怎么实现啊??? 给支支招吧!谢谢 最好不要重复!
作者: ivor 时间: 2018-12-22 21:52
本帖最后由 ivor 于 2018-12-23 19:05 编辑
- #!/bin/python
- import random,re
-
- with open("data",'r') as file:
- for i in file.readlines():
- i.strip('\n')
- arr = re.split(r'([,。])',i)
- arr = ["".join(i) for i in zip(arr[0::2],arr[1::2])]
- random.shuffle(arr)
- arr.append('\n')
- if len(arr) > 1 :
- for j in arr:
- print(j,end='')
- else:
- print(i)
复制代码
叶谦心情起伏不定。刀削的脸庞上有一道浅浅的疤痕,使得他原本俊秀的面孔,一个幼稚的少年,用这个词来形容叶谦现在的心情再恰当不过了。叶谦还只不过是一个十七岁的孩子而已;如今,八年的时间转眼即逝。现在已经蜕变成一个成熟坚毅的年轻人,离开华夏的时候,透过窗户看着下面一栋栋的高楼大厦,坐在飞往华夏的飞机上, 近乡情怯,变得更加的充满英气。
“先生,对叶谦旁边座位上一位西装革履的中年人说道。需要饮料吗?”一名漂亮的空姐走到叶谦的身边,
[Finished in 0.0s]
坐在飞往华夏的飞机上,叶谦还只不过是一个十七岁的孩子而已;如今,透过窗户看着下面一栋栋的高楼大厦, 近乡情怯,变得更加的充满英气。使得他原本俊秀的面孔,用这个词来形容叶谦现在的心情再恰当不过了。现在已经蜕变成一个成熟坚毅的年轻人,叶谦心情起伏不定。八年的时间转眼即逝。
离开华夏的时候,一个幼稚的少年,刀削的脸庞上有一道浅浅的疤痕,
“先生,
对叶谦旁边座位上一位西装革履的中年人说道。需要饮料吗?”一名漂亮的空姐走到叶谦的身边,[Finished in 0.0s]
作者: xzy1006 时间: 2018-12-22 23:08
回复 2# ivor
大神,你这能再分割的厉害点嘛,你这好像是针对每一段进行分割重组!能不能对整部小说按句号,逗号分割随机重组!可以分割的五六句为一段落,这样打开小说,就成了一部新的小说!句子不能重复!谢谢!
作者: WHY 时间: 2018-12-23 00:00
- PowerShell "$arr=(type 1.txt -ReadCount 0) -join '' -split '(“[^“”]*”)|(?<=[。,])'|?{$_ -ne $null}; sc 2.txt ((get-Random $arr -Count $arr.Count) -join '')"
复制代码
作者: xzy1006 时间: 2018-12-23 08:55
回复 4# WHY
牛逼,但是这打开之后不像本小说,要有段落!每一个段落后面的是句号!每一段落前面空两格!就是指处理完后生成的新小说,打开之后看一眼是一部新的小说!帮忙完善下吧!谢谢
作者: smss 时间: 2018-12-23 15:22
回复 WHY
牛逼,但是这打开之后不像本小说,要有段落!每一个段落后面的是句号!每一段落前面空两 ...
xzy1006 发表于 2018-12-23 08:55
你这是利用机器随机组合,然后要求合成出部新小说,但实事是机器只是按标点来重新组合,达不到你混淆别人小说后成为你小说的目的罢了
作者: xzy1006 时间: 2018-12-23 15:57
回复 6# smss
基本要求已经达到,就是我这100M的小说,处理的时间好像遥遥无期!
作者: WHY 时间: 2018-12-23 18:41
本帖最后由 WHY 于 2019-1-3 09:29 编辑
- $str = [IO.File]::ReadAllText('1.txt', [Text.Encoding]::Default);
- $arr = $str -replace '(?m)^\s+|\r\n' -split '(?<=[。,])(?!$)';
- $str = (get-Random $arr -Count $arr.Count) -join '' -replace ',$', '。';
- $str = [regex]::Replace($str, '。(?!$)', { If((get-Random) % 5){'。'}Else{"。`r`n "} });
- [IO.File]::WriteAllText('2.txt', ' ' + $str, [Text.Encoding]::Default)
复制代码
作者: tz_being 时间: 2018-12-28 20:02
回复 8# WHY
如果能在每个段落后面空一行就更牛B了
作者: yhcfsr 时间: 2018-12-28 20:20
回复 9# tz_being
第4行`r`n改为`r`n`r`n就行,无非就是多加个换行符.
作者: smss 时间: 2019-1-2 22:01
WHY 发表于 2018-12-23 18:41
我为什么运行后无效
作者: WHY 时间: 2019-1-3 09:32
回复 11# smss
那是 PowerShell 脚本,我这里没有问题。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |