如何在python中比较condtion中的字符串?

时间:2016-04-14 14:02:44

标签: python

我有两个文本文件

1)foo.txt

2)write.txt

foo.txt包含

welcome 

和write.txt是空白文本文件。

fo = open("foo.txt", "r+")
str = fo.readlines();
fo1 = open("write.txt", "wb")
print str[0]


if (str[0] == "welcome" ): fo1.write( "hoola");

fo.close()

fo1.close()

以上几行是python代码。 当我运行它时没有错误。

输出

welcome

运行程序后的文本文件:

1)foo.txt

welcome

2)write.txt完全空白

所以测试" hoola"没有写在文件write.txt

通过输出,我确保str [0]是受欢迎的'但是文本没有写入第二个文本文件 如何更正此代码以将str []的第一个元素与字符串' welcome'

进行比较

2 个答案:

答案 0 :(得分:0)

问题是,open('foo.txt').readlines()会为您提供列表['welcome\n'],您在检查中缺少换行符。因此,要么使用'welcome\n'检查您的字符串,要么使用str.strip方法删除您在任何换行符(和空格)中读取的行。

此外,不要使用变量名str,您将屏蔽内置str类型。

答案 1 :(得分:0)

您可以执行以下操作:

- 如果有任何尾随空格,它可以搞乱字符串匹配,可以删除:

import string
clean_input = string.rstrip(str[0])
if clean_input == 'welcome': ...

- 如果你只关心匹配的第一个字符,你也可以使用正则表达式进行模式匹配。我个人的经验是,这是一种更可靠的文本解析方式:

import re
if re.match('welcome', str[0]): ...