chosen86 发表于 2014-09-03 15:57

python:判断一个字符串是否是URL

07/Aug/2014:15:36:32   10.6.99.74   cyjtest   124.160.136.240
07/Aug/2014:15:36:32   10.6.99.74   cyjtest    124.160.136.250
07/Aug/2014:15:36:59   10.6.99.74   cyjtest   www.baidu.com
07/Aug/2014:15:37:00   10.6.99.74   cyjtest   sports.sina.com.cn
包含很多行上述行的文本text1.txt:
Python code:

fr = open (r'text1.txt','r')
fw = open(r'text2.txt','w+')
for text in fr:
    li = text.split(' ')
    if li.......:
       fw.write(text)
fr.close()
fw.close()

想判断li是不是URL,如果是就写入新文件,不是(即IP)就不写入,请问省略号部分怎么写?谢谢

huangxiaohen 发表于 2014-09-03 16:02

我觉得你可以按.分割一下字符串,然后判断每部分是否在字母集合里,如果在那就说明是个地址,if li.split('.') in string.letters:XXXX

chosen86 发表于 2014-09-03 16:26

huangxiaohen 发表于 2014-09-03 16:02 static/image/common/back.gif
我觉得你可以按.分割一下字符串,然后判断每部分是否在字母集合里,如果在那就说明是个地址,if li.spl ...
字母集合怎么用,python小白,
fr = open (r'text1.txt','r')
fw = open(r'text2.txt','w+')
for text in fr:
    li = text.split(' ')
    tf = re.match(/^(http://){0,1}+\.{2,}[\43-\176]*$/,li)
    if tf:
       fw.write(text)
fr.close()
fw.close()
这样可以吗?

Linux_manne 发表于 2014-09-03 16:26

你要严格的话 url 就用re 去匹配

huangxiaohen 发表于 2014-09-03 16:35

不用那么麻烦,string.letters就是所有大小写字母集合了. 导入个string模块

q1208c 发表于 2014-09-03 16:54

不知道楼主所说的 "URL" 判断标准是啥?

有 http ftp 开头?
域名?
有 .html ?
有 /.../... 这样 ?

在我看来, 楼主 列出来的文件中的四个都可以算做是 URL, 至少, 丢到IE下能可能被访问.

chosen86 发表于 2014-09-03 16:54

huangxiaohen 发表于 2014-09-03 16:35 static/image/common/back.gif
不用那么麻烦,string.letters就是所有大小写字母集合了. 导入个string模块
好的,我试试,谢谢!

zhwei228 发表于 2014-09-04 09:14

我也是初学者,我是这么写的
import re
p=re.compile('\D')
f=open('hello.txt','r')
fw=open('12.txt','w+')
for i in f.readlines():
    i=i.split()
    if p.match(i):
      fw.write(i)
f.close()
fw.close()

chosen86 发表于 2014-09-04 10:49

回复 8# zhwei228
恩,谢谢!

   
页: [1]
查看完整版本: python:判断一个字符串是否是URL