我已经看到很多类似的问题,但是人们总是给出解决方案,而不是出了什么问题。
我有这段代码,它给了我错误:“ TypeError:找不到必需的参数'flags'(位置2)”,我不知道错误是什么。
from os import *
from time import *
var_1 = open("{}/Dekstop/Test_file.txt".format(environ["USERPROFILE"],"a"))
var_2 = "Test"
if var_1.find(var_2):
print("yay")
else:
print("noo")
sleep(5)
我会很感激。
答案 0 :(得分:2)
您的近亲放置错误。
更改:
var_1 = open("{}/Dekstop/Test_file.txt".format(environ["USERPROFILE"],"a"))
收件人:
var_1 = open("{}/Dekstop/Test_file.txt".format(environ["USERPROFILE"]), "a")
我要走到这里,假设您希望阅读Test_file.txt
的内容,如果其中包含单词“ Test”,则您希望程序说“是”,否则为“ noo”。 / p>
为此,首先我们必须以“读取”模式打开文件。为此,我们使用open()
函数。不幸的是,在示例代码中,您进行了from os import *
的操作,该操作用open()
覆盖了os.open()
函数,而后者完全完成了其他工作。因此,让我们摆脱那些import
语句。
现在我们有了适当的open()
函数,我们必须使用要打开的文件名和一个短字符串来调用它,该短字符串指示我们要在哪种模式下打开它。在您的示例中,将其设置为"a"
,这意味着附加到文件。让我们将其切换为"r"
,这意味着可以阅读。
但是,这只会打开文件进行读取,但实际上还没有读取任何内容。而是返回一个file
对象。要读取文件的内容,我们可以使用其read()
方法。这将文件的内容作为字符串返回。既然我们已经完成了从文件中读取的操作,那么我们必须是好公民并关闭它,以便其他程序可以访问该文件。我们可以使用close()
对象的file
方法来做到这一点。
最后,我们可以使用字符串的find()
方法检查内容中是否包含单词“ Test”,但是,如果找不到该单词,则find()
返回-1
。因此,请记住所有这些,尝试使用此版本的程序:
import time
# Open the file for reading
f = open("{}/Dekstop/Test_file.txt".format(environ["USERPROFILE"]), "r")
# Read the contents of the file
var_1 = f.read()
# Close the file so others may use it
f.close()
# The word to look for in the contents of the file
var_2 = "Test"
# Search the contents of the file
if var_1.find(var_2) != -1:
print("yay")
else:
print("noo")
# Pause for 5 seconds
time.sleep(5)
总结起来,我为您提供了与上述程序完全相同的不同版本的程序,但是用更少的代码行。它使用了一些很酷的Python功能,您可能对以下功能感兴趣:
import time
search_word = "Test"
with open("/u/45/vanvlm1/unix/playground/Test_file.txt") as f:
if search_word in f.read():
print("yay")
else:
print("noo")
time.sleep(5)