(Python)TypeError:找不到必需的参数“ flags”(位置2)

时间:2018-07-15 17:32:45

标签: python python-3.x typeerror

我已经看到很多类似的问题,但是人们总是给出解决方案,而不是出了什么问题。

我有这段代码,它给了我错误:“ 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)

我会很感激。

1 个答案:

答案 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)