首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >(Python)标志:找不到必需的参数‘TypeError’(pos 2)

(Python)标志:找不到必需的参数‘TypeError’(pos 2)
EN

Stack Overflow用户
提问于 2018-07-16 01:32:45
回答 1查看 10.3K关注 0票数 -1

我见过许多这样的问题,但人们总是给出解决方案,而不是哪里出了问题。

我有这段代码,它给我一个错误:"TypeError:必需的参数'flags‘(Pos2)未找到“,但我不知道错误是什么。

代码语言:javascript
复制
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)

我将非常感谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2018-07-16 01:38:34

你有一个放错地方的密友。

更改:

代码语言:javascript
复制
var_1 = open("{}/Dekstop/Test_file.txt".format(environ["USERPROFILE"],"a"))

至:

代码语言:javascript
复制
var_1 = open("{}/Dekstop/Test_file.txt".format(environ["USERPROFILE"]), "a")

我在这里冒险,假设您希望读取测试的内容,如果它包含单词“Test_file.txt”,您希望程序说"yay“,否则说"noo”。

要做到这一点,首先我们必须以"read“模式打开文件。为此,我们使用open()函数。不幸的是,在您的示例代码中,您使用的是from os import *,它用os.open()覆盖了open()函数,后者做的是完全不同的事情。所以,让我们去掉那些import语句。

现在我们有了正确的open()函数,我们必须使用我们想要打开的文件的名称和一个短字符串来调用它,该字符串指示我们想要以哪种模式打开它。在您的示例中,将其设置为"a",这意味着附加到文件。让我们将其转换为"r",意思是读取。

但是,这只会打开文件以供读取,但实际上还没有读取任何内容。相反,它返回一个file对象。要读取文件的内容,我们可以使用它的read()方法。这将以字符串形式返回文件的内容。现在我们已经完成了对文件的读取,我们必须做个好公民并关闭它,这样其他程序才能访问该文件。我们可以使用file对象的close()方法做到这一点。

最后,我们可以使用字符串的find()方法检查内容中是否存在单词"Test“,但是,如果没有找到该单词,find()将返回-1。所以,记住所有这些,试一下你的程序的这个版本:

代码语言:javascript
复制
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功能:

代码语言:javascript
复制
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)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51350600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档