Python:每日一题 173
本帖最后由 冬雪雪冬 于 2018-4-5 17:18 编辑我们的玩法做了一下改变:
1. 楼主不再提供答案。
2. 请大家先独立思考,再参考其他鱼油的解答,这样才有助于自己编程水平的提高。开始阶段是看不到其他人的回帖的,等答题完成,开始评分时再取消限制。
3. 鼓励大家积极答题,奖励的期限为出题后24小时内。
4. 根据答案的质量给予1~3鱼币的奖励。
题目:论坛内容防复制~
这次的题目是 @Chase_Kas 提供的,我编辑一下,重新发帖,供大家练习。
在做课后作业的过程中,阅读小甲鱼写的帖子,我发现了一个非常有趣的现象:
http://xxx.fishc.com/forum/201803/31/185530d0n0x5qne3ct9e3b.png
看着很普通的文字里面大有玄机!
http://xxx.fishc.com/forum/201803/31/185645j7pztp2j1p17h4gx.png
是的!文字后边竟然还有字符......当然为了不显示,设置字体颜色为白色,在乱码的前后加上标记['color=White](去掉')。
另:原题目还要求对代码格式的部分不添加乱码,为了简化就不要求了。
写一个能够自动添加随机字符的程序,将文本文件的内容写入白色的随机字符,并输出为一个新文件。
在 @Chase_Kas原贴已答题的鱼油将一同评分。 from random import *
with open('G:\\a.txt')as f:
a=f.read().split('\n')
with open('G:\\target.txt','a')as tag:
for e in a[:-1]:
t=''
for i in range(50-len(e)):
t+=chr(randint(32,126))
tag.write(e+''+t+'\n') 本帖最后由 天圆突破 于 2018-4-1 20:54 编辑
from random import *
from functools import reduce
class Txt:
def __init__(self, file1):
self.txt = file1
def string(self, a, b):
return '' + reduce(lambda x,y:x+y,list(chr(randint(33,126)) for i in range(randint(a,b)))) + '' + '\n'
def addcode(self, file2):
with open(self.txt,'r',encoding='utf-8') as f1 ,open(file2,'a',encoding='utf-8') as f2:
for each in f1:
f2.writelines(each.strip() + self.string(5,10) + self.string(15,20))
if __name__ == '__main__':
a = Txt('txt1.txt')
a.addcode('txt2.txt') 本帖最后由 shigure_takimi 于 2018-4-8 09:26 编辑
#不知道是不是这个意思
import random
from string import printable
with open('1.txt', 'r') as f:
a = f.readlines()
with open('2.txt', 'a') as f:
for i in a:
s = ''
for j in range(random.randint(10,30)):
s += random.choice(printable)
f.write(i.strip()+''+s+''+'\n') 本帖最后由 凌九霄 于 2018-4-2 11:34 编辑
import random
source =['1、生肖鼠:渐有起色,戒除懒散。\n', '\n', '2、生肖牛:黯然不明,注意健康。\n', '\n', '3、生肖虎:稍有波动,三思而行。\n', '\n', '4、生肖兔:是非混杂,确保安全。\n', '\n', '5、生肖龙:艰难晦涩,小心应对。\n', '\n', '6、生肖蛇:多劳多得,争取主动。\n', '\n', '7、生肖马:展开行动,稳扎稳打。\n', '\n', '8、生肖羊:勇于进取,机遇难得。\n', '\n', '9、生肖猴:略有阻滞,隐忍为上。\n', '\n', '10、生肖鸡:与人为善,能忍自安。\n', '\n', '11、生肖狗:审时度势,谋定后动。\n', '\n', '12、生肖猪:诸事顺遂,居安思危。']
with open(r'd:\test.txt', 'w') as F:
for i in source:
F.write(i)
# 以上代码用于生成例子需要的文本文件
with open(r'd:\test.txt') as F:
strtxt = F.readlines()
def randomstring():
string = ''
for i in range(1, random.randint(10, 60)):
string += chr(random.randint(32, 127))
return '' + string + ''
with open(r'd:\modifytest.txt', 'w') as F:
for i in strtxt:
if i[:-2:-1] == '\n' or i == '\n':
F.write(i.replace('\n', randomstring()) + '\n')
else:
F.write(i + randomstring())
题目没看懂{:10_266:} 膜拜大佬们 from random import randrange, choice
def random_str():
a = []
for i in range(200):
a.append(chr(i))
slen = randrange(5, 30)
ss = ''.join(choice(a) for i in range(slen))
return ss
print(random_str())
不是很能理解题目的意思,只写了个添加乱码的函数。不知道怎么设置字体颜色为白色 还是统一发这儿吧Z=8>q(jXgxym5g
import easygui as g
import random as r
def randstr(amt):
return ''.join()
text = g.textbox(msg='请输入要防复制的内容...', title='请输入文本内容...')
newtext = ''
notcode = 1
for eachline in text.splitlines():
if eachline == '':
lenth = r.randint(40, 60)
else:
lenth = r.randint(10, 20)
if ('') in eachline:
notcode = 0
if ('') in eachline:
newtext += (eachline + '\n')
notcode = 1
continue
newtext += (eachline + notcode*(''+randstr(lenth)+'') + '\n')
g.textbox(msg='添加随机字符后结果如下,复制即可.', title='结果...', text=newtext) import random
import string
with open('path/to/file/2.txt', 'w') as g:
with open('path/to/file/1.txt', 'r') as f:
for line in f:
line1 = line+''+''.join(random.sample(string.ascii_letters + string.digits, 8))+''
g.write(line1) import random as r
#生成随机字符串
def randstr():
result_str = ''
length = r.randint(30,50)
for i in range(length):
result_str += chr(r.randint(33,126)) #加入可在屏幕上显示的字符
return result_str
old_file = input('请输入要修改的文件的路径:')
old_f = open(old_file,'r')
new_f = open('result.txt','w')
for each_line in old_f:
if each_line != '\n':
new_line = each_line[:-1] + '' + randstr() + '\n'
else:
new_line = each_line
new_f.write(new_line)
old_f.close()
new_f.close()
print('修改后的文件为此程序同目录下的result.txt') 真不会啊 本帖最后由 lan358088 于 2018-4-2 22:55 编辑
import random
import string
text_a='''
《零基础入门学习Python》视频下载地址
测试题(笔试,不能上机哦~)
'''
def add_str(text_a):
flag=1
while flag:
if text_a.find(' ')==-1:
flag=0
ran_str =''+ ''.join(random.sample(string.ascii_letters + string.digits, 1))+''
text_a=text_a.replace(' ',ran_str,1)
return text_a
with open('temp.txt','w',encoding='utf-8')as f:
f.write(add_str(text_a)) 本帖最后由 graceasyi 于 2018-4-3 15:45 编辑
不知道乱码的长度,在程序中设置了64位。
import random
def gen_messy_code(n):
seed = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+=-{}[]\|:;'\"<>?,./~`"
messy = ''.join()
return messy
fd = open('173.txt', 'r')
fw = open('new.txt', 'w')
list1 = fd.readlines()
for each in list1:
fw.writelines(each.rstrip('\n')+''+gen_messy_code(64)+''+'\n')
fd.close()
fw.close()
结果如下:
本帖最后由 冬雪雪冬 于 2018-4-1 16:07 编辑(rX`
我们的玩法做了一下改变:AJCU,$Tzb3}sMx7ep5=rU*e:e+(
1. 楼主不再提供答案。8Dk*III4oBZX&N,</82wj|%s*:)$0&yxQ
2. 请大家先独立思考,再参考其他鱼油的解答,这样才有助于自己编程水平的提高。开始阶段是看不到其他人的回帖的,等答题完成,开始评分时再取消限制。1]\l;6@{XH&kV:g&%jQl*sO\?xqj#ri7ob*)t`mDIQrLpBH4;?dL0mCAZZ+nw=2g
3. 鼓励大家积极答题,奖励的期限为出题后24小时内。!rIhUko!*H(>Ony0|@c_S]edDs\TM44+)XI?E^$yG7w|il0r-s|*P>,++A%VM76t
4. 根据答案的质量给予1~3鱼币的奖励。SC)kWB}TK|aJr-4p:D%v_s1\3rO6-jsSo_&F!+/N:emZr<A@=1<#'\cTYGwKIB}Q
健康的啦 import random
def rstr():
rstr='!@#$%^&*AB CDEFGHIJklmnopqRSTuVwXYz( ){}_+/?123 098'
lx=''
for i in range(random.randint(6,20)):
lx=lx+random.choice(rstr)
return ''+lx+''
with open('1.txt','r') as f:
with open('2.txt','a') as fn:
while True:
lc=f.readline()
if (lc!=''):
lc=lc[:-1]+rstr()+'\n'
fn.write(lc)
else:
break
本帖最后由 永恒的蓝色梦想 于 2019-8-18 17:15 编辑
from random import randint;l='~!@#$%^&*()_+`1234567890-={}|[]\:";\'<>?,./QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm'
def func(words):return'\n'.join(i+''+''.join((lfor _ in range(32)))+'' for i in words.split('\n'))
我们的玩法做了一下改变:1Perh9O4nTkE7hvL7cri40l(0r~(36r}
v|i(+[+v
1. 楼主不再提供答案。Xu`|krJ__W:zf_}24$T#EyF{RkizI06I
2. 请大家先独立思考,再参考其他鱼油的解答,这样才有助于自己编程水平的提高。开始阶段是看不到其他人的回帖的,等答题完成,开始评分时再取消限制。A"CF?sB@pw|Keekg$x87Jkla0~D!(Fi/
3. 鼓励大家积极答题,奖励的期限为出题后24小时内。>gD4&mp=k1DB*9Uia3@5g{Lzt]L?Ln%I
4. 根据答案的质量给予1~3鱼币的奖励。7pA3gH687>7,iu}~Oj:<Y$/sd|1|M&PZ
Td^20ixZjh:_m7nu7e=m
题目:论坛内容防复制~LL2h{5\RX!E|'r(.h
这次的题目是 @Chase_Kas 提供的,我编辑一下,重新发帖,供大家练习。~la#PLli8cEyeXCNhJ=:K~5$q-C(G!>" {:10_249:} 试试效果Y5z^o].0F^`DUP!Dh?8;ps:d]c9V>P1!SxHMa`EZ;fvYA`U.$/%p]m@JyPnc`Dl1<OVo@]T2Yj,qWfUo= go8!RNMU2(p2xr`aTIa S5K]o"Ai4<dSXwX`Y+f|+WLS&pE5lQ+xXS, F;rzTbah2{$K;,L.S/O&5cz/)hb^
页:
[1]