我有两个文本文件
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'
进行比较答案 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]): ...