我见过许多这样的问题,但人们总是给出解决方案,而不是哪里出了问题。
我有这段代码,它给我一个错误:"TypeError:必需的参数'flags‘(Pos2)未找到“,但我不知道错误是什么。
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)
我将非常感谢你的帮助。
发布于 2018-07-16 01:38:34
你有一个放错地方的密友。
更改:
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
”,您希望程序说"yay“,否则说"noo”。
要做到这一点,首先我们必须以"read“模式打开文件。为此,我们使用open()
函数。不幸的是,在您的示例代码中,您使用的是from os import *
,它用os.open()
覆盖了open()
函数,后者做的是完全不同的事情。所以,让我们去掉那些import
语句。
现在我们有了正确的open()
函数,我们必须使用我们想要打开的文件的名称和一个短字符串来调用它,该字符串指示我们想要以哪种模式打开它。在您的示例中,将其设置为"a"
,这意味着附加到文件。让我们将其转换为"r"
,意思是读取。
但是,这只会打开文件以供读取,但实际上还没有读取任何内容。相反,它返回一个file
对象。要读取文件的内容,我们可以使用它的read()
方法。这将以字符串形式返回文件的内容。现在我们已经完成了对文件的读取,我们必须做个好公民并关闭它,这样其他程序才能访问该文件。我们可以使用file
对象的close()
方法做到这一点。
最后,我们可以使用字符串的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)
https://stackoverflow.com/questions/51350600
复制相似问题