LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 792|回复: 3

求助,文件的问题。

[复制链接]
发表于 2004-6-7 11:22:35 | 显示全部楼层 |阅读模式
我正在用python写脚本,需要判断一个文件里是否有一个句子,如果有什么也不作。如果没有就在文件里加上这个句子。

#!/usr/bin/bash python
passive='passive_transfer=0\n'  #这个就是要判断的句子。
file=open('/home/jason/.gftp/gftprc','r+') #大开这个要判断的文件
for line in file.readlines():              #文件扫描
    if line!=passive:                     
       #问题就是这里怎么写阿?如果直接写file.write('passive_transfer=0\n')他会写很多次。
发表于 2004-6-7 11:50:30 | 显示全部楼层
要是shell的话,应该不难,可惜,懂python的不多! :sorry
 楼主| 发表于 2004-6-7 11:57:04 | 显示全部楼层
javelee,就是循环一个文件,for line in file.readlines(): 就是把文件的没一行付值line,这个循环就是文件有多少行,就循环多少遍。
if line !=passive  判断我找的行在不在这个文件里。
如果不在就在文件里加这么一条'passive_transfer=0\n',如果在就break
现在的问题就是,不知道判后面应该怎么写。因为如写
if line !=passive 在这个后面更语句的话不是一条,是所以条件城里的语句的循环数。我现在就在像,怎么让他就执行一条。
 楼主| 发表于 2004-6-7 13:55:51 | 显示全部楼层
我晕终于搞懂了。
#!/usr/bin/bash python
passive='passive_transfer=0\n'
file=open('/home/jason/.gftp/gftprc','r+')
line=file.readlines()
if not passive in line:
    file.write(passive)
这样就可以了。
while 1:
    line=file.readline()
    if line==passive:
        break
   else:
        if not line:
            file.write(passive)
            break
这样也可以。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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