开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3933|回复: 6
收起左侧

[已解决] 第一天学习python...求帮助

 关闭 [复制链接]
结帖率:87% (53/61)
发表于 2020-11-12 09:56:32 | 显示全部楼层 |阅读模式   浙江省杭州市
10精币
   今天突发奇想,学习一下这个python...
随便找了个页面,复制了一点源码进test.txt文本文件,然后准备提取出关键字文本,存到一个文件。。。
就这么简单的一个操作。。。
   遇到了一些问题,基本都解决了(哈哈,百度各种抄。。。)
但是,完成的代码实在是长的太丑。。。我想请各位大大帮助优化下,方便我理解学习python
目前代码的步骤是
一:打开test.txt,提取特征字符串
二:存入outx.txt
三:去重复,存入jieguo.txt

我希望能不要生成out.txt,直接生成去重复后的jieguo.txt
目前代码有个小问题,如果重复运行,且存入相同txt文件,生成的jieguo.txt会接在原来的jieguo.txt后面,我不想追加。。。 getfile.rar (54.99 KB, 下载次数: 2)

最佳答案

查看完整内容

改一下打开模式 t 文本模式 (默认)。 x 写模式,新建一个文件,如果该文件已存在则会报错。 b 二进制模式。 + 打开一个文件进行更新(可读可写)。 U 通用换行模式(不推荐)。 r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 r+ 打开一个文件用于读写。文件指针将会放在文件的开头。 rb+ 以 ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

结帖率:99% (71/72)
发表于 2020-11-12 09:56:33 | 显示全部楼层   广东省深圳市
改一下打开模式

t        文本模式 (默认)。
x        写模式,新建一个文件,如果该文件已存在则会报错。
b        二进制模式。
+        打开一个文件进行更新(可读可写)。
U        通用换行模式(不推荐)。
r        以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb        以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+        打开一个文件用于读写。文件指针将会放在文件的开头。
rb+        以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w        打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb        以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+        打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+        以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a        打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab        以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+        打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+        以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

【来自wai网】



补充内容 (2020-11-12 10:42):
还是先学基础吧

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:100% (8/8)

签到天数: 1 天

发表于 2020-11-12 10:17:37 | 显示全部楼层   广东省深圳市
如果你懂易语言你可以先看下这个在开始学,应该会理解些,

https://bbs.125.la/forum.php?mod ... 14628689&extra=
回复

使用道具 举报

结帖率:87% (53/61)
 楼主| 发表于 2020-11-12 10:51:23 | 显示全部楼层   浙江省杭州市
陈炳强 发表于 2020-11-12 10:17
如果你懂易语言你可以先看下这个在开始学,应该会理解些,

https://bbs.125.la/forum.php?mod=vi ...

谢谢,个人经验,学一个语言,尽量还是自己先学,然后多尝试解决实际问题,然后请教参考学习大大们的代码,比较自己的编程思路习惯等,学习起来比较快。。。
我觉得加群交流应该是个好方法,可惜经常遇到常年不说话的群。。。
同时也理解,本人其实也加群,可是也经常很久不说话,因为没有经常性的“”问题“”。。。
毕竟占着群坑,被人嫌。。。
回复

使用道具 举报

结帖率:87% (53/61)
 楼主| 发表于 2020-11-12 10:57:15 | 显示全部楼层   浙江省杭州市
影知 发表于 2020-11-12 10:42
改一下打开模式

t        文本模式 (默认)。

我知道了。谢谢,也明白你回答的这个处理,也能解决追加这个问题,只是希望看下在完成同样任务时,大大们的代码。当然,基础确实是需要学习
回复

使用道具 举报

结帖率:87% (53/61)
 楼主| 发表于 2020-11-12 11:04:15 | 显示全部楼层   浙江省杭州市
影知 发表于 2020-11-12 10:42
改一下打开模式

t        文本模式 (默认)。

比如看到大大们的代码,我看懂后,能直接了解一些变量(字符串,数组,以及各种模块函数功能)等实际处理方式,而按教程学习,虽然比较全面,但慢啊。。。不可能一个一个参数去测试了解,对于我这种业余的来说,那太烦了。。。不知道你能理解不?
回复

使用道具 举报

结帖率:87% (53/61)
 楼主| 发表于 2020-11-12 17:51:15 | 显示全部楼层   浙江省杭州市
经过修改,我已经自己重写了代码,感觉完全够用了,这样去掉了中间文件,直接去重,同时搞定了保存文件去重追加。
谢谢大家!
lines_key=set()                                    
for line in data:
    pattern = re.compile('[\w]{5}-[\w]{5}-[\w]{5}-[\w]{5}-[\w]{5}')
    string = str(line)
    key = re.findall(pattern,string)
    for keys in key:
        if keys not in lines_key:
           lines_key.add(keys)

sname=tk.filedialog.asksaveasfilename(title=u'追加保存文件',initialfile='jieguo.txt',filetypes=[("txt", ".txt")])
if sname:
        outfile=open(sname,'a+',encoding=encod1)
        outfile.seek(0)
        data1=outfile.read()
        outfile.seek(2)
        for keyx in lines_key:
            if keyx not in data1:         
               outfile.write(keyx+'\n')
        outfile.close()
else:
        outfile=open('jieguo.txt','a+',encoding=encod1)
        for keyx in lines_key:
            outfile.write(keyx+'\n')
        outfile.close()
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表