python 将文本中的一段复制到python引用另一个文件本

文本如下:
#日期 流水号 被浏览页面URL 第×页 访问者IP 访问时间 是否入口 操作系统 浏览器 语言 时区 屏幕分辨率 屏幕色彩位数 省份 城市 接入商 上网场所 是否安装ALEXA
    http://www.imaibo.net/space/178120  1   59.41.23.101    13:38:14   0   Windows XP Chrome 21.0.8    http://www.imaibo.net/space/24649  3  211.143.83.60   13:38:13  0
    http://www.imaibo.net/live/216945  4  119.130.98.225   13:38:12  0
    http://www.imaibo.net/space/170907  6  58.50.218.120   13:38:12  0
    http://www.imaibo.net/space/113374  1  14.158.204.146   13:38:11  1  Windows XP Chrome 21.0.1180  zh-cn  8  8  32  广东  广东省  电信  0 14 9
1.将每一个field对应的在BSON文档中的key先存储到一个列表中,如:
keyarray = [&date&,&swiftnum&,&url&,&page&,&ip&,&atime&,&is_inpoint&,&system&,&browser&,&locale&,&timezone&,
&screen&,&colornum&,&province&,&city&,&aprovider&,&netcase&,&isalexa&,&ipheader&,&count&,&keyword&,&domain&,&incomeurl&]
2.从文件中读取文本数据,用for in循环遍历每一条文本记录,使用re模块的split方法,利用定义的pattern=r‘\t*’ 将每一行文本记录分解为的field组成的list
3.用一个for in循环对每一条记录的list遍历,将list中的值作为value,依次取出keyarray中的元素作为key,组成每一条文本记录对应的BSON文档,这样就实现了文本记录转换为BSON文档。
4.为了防止重复插入相同的记录,设计一个算法实现如下:
 a.找到可以唯一标识每条记录的key-value,(本例:swiftnum)
 b.在每次将每一条记录的BSON文档插入MongoDB中的同时,将对应的swiftnum的值写到一个文件swiftnums.txt中。
 c.在每次插入记录BSON文档之前先做判断,是否要插入的BSON文档的swiftnum的值not in在swiftnums.txt中,若是的话,则插入,反之则跳过。
代码如下:
import os,globimport re,pymongo#-----连接MongoDB-----conn = pymongo.Connection(&localhost&,27017)db = conn.flowcounterflowlist = db.flowcollection
#要存储的文本file = open(&test.txt&,&r&)
#用于存储每一条记录的swiftnum值,以防止重复插入swiftnums = open(&swiftnums.txt&,&r+&)
#每条记录转成BSON文档时,每个域对应的keykeyarray = [&date&,&swiftnum&,&url&,&page&,&ip&,&atime&,&is_inpoint&,&system&,&browser&,&locale&,&timezone&,
&screen&,&colornum&,&province&,&city&,&aprovider&,&netcase&,&isalexa&,&ipheader&,&count&,&keyword&,&domain&,&incomeurl&]#分解文本记录用到的正则pattern = r'\t*'#包含数据库中已有的记录的swiftnum的listswiftnum_list = swiftnums.read().split(&,&)for line in file.readlines()[1:]:
li_list = re.split(pattern,line)
#分解记录为list
for field in li_list:
data[keyarray[i]]=field
#将记录转为BSON文档
if data['swiftnum'] not in swiftnum_list:
#判断是否重复
flowlist.insert(data)
swiftnums.write(data['swiftnum']+&,&)
#记录已有记录swiftnums.close()
与本文相关的文章新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
UID空间积分0 积分1阅读权限10帖子精华可用积分1 信誉积分11 专家积分0 在线时间2 小时注册时间最后登录
白手起家, 积分 1, 距离下一级还需 199 积分
帖子主题精华可用积分1 信誉积分11 专家积分0 在线时间2 小时注册时间最后登录
论坛徽章:0
本帖最后由 mylufil 于
10:04 编辑
取消本问题
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
UID空间积分0 积分12250阅读权限90帖子精华可用积分12250 信誉积分2215 专家积分0 在线时间2285 小时注册时间最后登录
大富大贵, 积分 12250, 距离下一级还需 7750 积分
帖子主题精华可用积分12250 信誉积分2215 专家积分0 在线时间2285 小时注册时间最后登录
认证徽章论坛徽章:16
sed&&'#^/test#s###;#/X/ABC#a \ /X/XYZ;#temp.txt#d;^$d' urfile
一个良好的算法能够对性能起到关键作用,因此性能改进的首要点是对算法的改进。在算法的时间复杂度排序上依次是:
O(1) -& O(lg n) -& O(n lg n) -& O(n^2) -& O(n^3) -& O(n^k) -& O(k^n) -& O(n!)
UID空间积分0 积分843阅读权限20帖子精华可用积分843 信誉积分130 专家积分0 在线时间37 小时注册时间最后登录
丰衣足食, 积分 843, 距离下一级还需 157 积分
帖子主题精华可用积分843 信誉积分130 专家积分0 在线时间37 小时注册时间最后登录
论坛徽章:0
本帖最后由 idhly 于
23:07 编辑
比较笨的办法fhl=open('test.txt','r')
for line in fhl.readlines():
& & & & line=line[5:].strip()
& & & & if line!=0 and line[-9:]!='/temp.txt':
& & & & & & & & if line[-6:]=='/X/ABC':
& & & & & & & & & & & & print line
& & & & & & & & & & & & print '/X/XYZ'
& & & & & & & & else:
& & & & & & & & & & & & print line
fhl.close()锟斤拷锟狡达拷锟斤拷
在UNIX/Oracle上运行SAP...
最大嗜好: 拿候皮筋做个弹弓打你们家玻璃...Python 把list写入文本中 - icy.qin的个人空间 - 51Testing软件测试网 51Testing软件测试网-中国软件测试人的精神家园
Python 把list写入文本中
& 09:54:31
/ 个人分类:
from code import InteractiveConsoledef student_info(message):&&& print("please input student's " + message);&&& sub_list.append(InteractiveConsole.raw_input(""));&&& print("this is sub_list");&&& print(sub_list);mylist = ();sub_list = list();ID = 0; #record student's numberprint("do you want to add student's imformation: y/n");answer = InteractiveConsole.raw_input("");while answer == "y" or answer =="Y":&&& student_info("number");&&& student_info("name");&&& student_info("grade");&&& student_info("interest");&&&&&& mylist.append(sub_list);&&&&&& print("this is mylist");&&& print(mylist);&&&&&& print("do you want to add student's imformation again: y/n");&&& answer = InteractiveConsole.raw_input("");&&& sub_list = list();&&& ID = ID +1&&&else:&&& print("Over");&&&myfile = open("student.txt", "a")for i in range (0, ID):&&& for j in range (0,4):&&&&&&& myfile.write(mylist[i][j])&&& myfile.write("\n")myfile.close()&老公说我的想法比较怪异,用个多维list来存储数据,这不就是他之前给的建议吗?先把信息保存在一个list里面,然后再把这个list写入文件中。python中如何从一个文本中截取某自己想要的字符后放到新的文本中,都再过节也不知道会不会被搭理,在线等
[问题点数:20分,结帖人jadewell]
python中如何从一个文本中截取某自己想要的字符后放到新的文本中,都再过节也不知道会不会被搭理,在线等
[问题点数:20分,结帖人jadewell]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2006年5月 PHP大版内专家分月排行榜第二2006年4月 PHP大版内专家分月排行榜第二2007年1月 PHP大版内专家分月排行榜第二
2013年10月 其他开发语言大版内专家分月排行榜第三2007年2月 PHP大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。}

我要回帖

更多关于 python 调用另一个py 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信