原来是第三人称单数哈!lilydjwg 写了:你英文没学好啊,是 startswith()pengqian 写了: 最近在学python, 这个好懂哈~ 原来string 还有 startwith() 这种method 啊
[二星]格式化输出,欢迎各种脚本或者语言
-
- 帖子: 120
- 注册时间: 2010-12-23 10:23
Re: ★★格式化输出,欢迎各种脚本或者语言
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
Re: ★★格式化输出,欢迎各种脚本或者语言
不是吧。这样bt的函数。没用过正则?pengqian 写了:原来是第三人称单数哈!lilydjwg 写了:你英文没学好啊,是 startswith()pengqian 写了: 最近在学python, 这个好懂哈~ 原来string 还有 startwith() 这种method 啊
● 鸣学
-
- 帖子: 1
- 注册时间: 2013-04-26 14:31
- 系统: ubuntu10.10
Re: [二星]格式化输出,欢迎各种脚本或者语言
刚学python,就尝试下~
代码: 全选
1 #!/usr/bin/python
2 '''Version2.0
3
4 This is to solve the CONTACT file read'''
5 filename='CONTACT'
6 CONTACT=file(filename)
7 content=CONTACT.read()
8 CONTACT.close()
9 print 10*'*',filename,10*'*'
10 print content
11 print 10*'*',filename,10*'*'
12 CONTACTlist=content.split('#CONTACT')
13 for item in CONTACTlist:
14 lines=item.split('\n')#split by ENTER
15 name=''
16 phone=''
17 for line in lines:
18 if line.startswith('NAME'):
19 name=line[5:]
20 elif line.startswith('PHONE'):
21 phone=line[6:]
22 #end for
23 if (name!='')and(phone!=''):
24 print 'name:%s , phone:%s' % (name,phone)
25 #end for
-
- 帖子: 4
- 注册时间: 2013-03-28 11:42
- 系统: ubuntu 10.04
Re: [二星]格式化输出,欢迎各种脚本或者语言
简洁点的写法如下,通过awk自带的参数就能实现:
内容多点,但是易懂的方法如下:
这两者的实际思想是一样的,楼主其实实现这个功能应该是完全木有问题的,我只是单纯的写出来了。。。
运行命令为:
代码: 全选
#!/bin/sh
awk -F'=' 'BEGIN{i=0}$1=="#CONTACT"{i++}$1=="NAME"{b[i]=$2}$1=="PHONE"{a[i]=$2}END{for(i in a){if (b[i] && p[i]) printf "%s, %s\n",b[i],a[i]}}' $1
代码: 全选
#!/bin/sh
i=0
nm=""
ph=""
touch zc.txt
while read line;do
pdzf=`echo $line|awk -F'=' '{print $1}'`
pdfz=`echo $line|awk -F'=' '{print $2}'`
if [ "$pdzf" = "#CONTACT" ];then
nm=""
ph=""
fi
if [ "$pdzf" = "NAME" ];then
nm=`printf "%s" $pdfz`
fi
if [ "$pdzf" = "PHONE" ];then
ph=`printf ",%s\n" $pdfz`
i=1
fi
if [ "$pdzf" = "ICON" ];then
if [ $ph ];then
echo ${nm}${ph}>>zc.txt
fi
fi
done <$1
cat zc.txt
rm -rf zc.txt
运行命令为:
代码: 全选
sudo sh 程序文件名 信息文件名