我正在尝试创建一个写入文件的程序,然后查找该文件中已写入的内容

时间:2015-01-06 15:21:19

标签: python

a=("Hello")
f  = open("hello.csv","a")
f.write(a)
g=str.find(a)
if g== (True):
                print("True")
f.close()

这段代码无法正常显示find()需要一个参数,而当我清楚地说明一个是(" Hello")时,会给出0;

3 个答案:

答案 0 :(得分:2)

在Python中:

Class.method(instance)

相当于

instance.method()

str是一个类,因此str.find(a)相当于a.find(),这显然缺少要找到的第二个字符串:

>>> "hello".find()

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    "hello".find()
TypeError: find/rfind/index/rindex() takes at least 1 argument (0 given)
>>> str.find("hello")

Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    str.find("hello")
TypeError: find/rfind/index/rindex() takes at least 1 argument (0 given)
>>> "hello".find("e")
1
>>> str.find("hello", "e")
1

你需要指定两个字符串 - 一个要查看,一个要查找,要么是look_in.find(to_find),要么是str.find(look_in, to_find)(前者更常规,读取更好)。


此外,您应该只写if g== (True):而不是if g:。看看the style guide

答案 1 :(得分:0)

尝试这样:

a = "Hello"   # no need of brackets 
f  = open("hello.csv","a")
f.write(a)
f.close()
f  = open("hello.csv","r")
f = f.read()
if f.find(a)>0:       # find returns position of substring if found else -1
    print True
f.close()

答案 2 :(得分:0)

w+see here)模式打开文件,它将生成文件名hello.csv。并使用file.seek来读取文件

a = ("Hello")
with open("hello.csv", 'w+') as f:
    f.write(a)
    f.seek(0)
    print f.read()

来自