如何打开.txt文件并将其实现到我的程序中

时间:2016-12-14 19:13:39

标签: python

try:
    open_pre = open((preferences.txt), "r")
    open_pre = open_pre.read()
    open_pre.close()
    print(open_pre)
except:
    print("Could not load preferences.txt")

我试一试,除了我尝试用我的设置读取文本文件并将其实现到我的程序中,但每次我得到除错误"无法加载preferences.txt"。如何将文件存储在变量中,或者我必须独立读取每一行。

以下是我要加载的内容

# Password protects the program when opened ('True' or 'False')
password_protected = True
user_password = "123"

# Program presets (Ex. ip_preset = "198.148.81.137")
ip_preset = ""
port_preset = ""
hostname_preset = ""
message_preset = ""

# Sends a message in each socket sent ('True' or 'False')
send_message = True

# Auto-generate a message from the internal library. ('True' or 'False')
autogen_msg = True

3 个答案:

答案 0 :(得分:1)

假设这是你正在使用的实际代码块,一些非常明显的错误:你得到的是NameError

>>> open(data.html, 'r')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'data' is not defined

为什么呢? preferences.txt被视为变量,而不是字符串。它应该是'preferences.txt'

使用不加区别的except块吞下所有异常是一个非常糟糕的主意。您应该只捕获您知道如何处理的特定例外

答案 1 :(得分:0)

好像你应该这样做:

open_pre = open('preferences.txt', "r") # file name is a string

file_var = '' # store file in string variable
for line in open_pre:
    file_var += line

答案 2 :(得分:0)

目前您的代码中存在一些问题(不只是一个问题)

变量与字符串

您正在执行的preferences.txt被视为&#34; txt变量&#34;的preferences属性。您想要的是将文本视为字符串,因此您需要在其周围添加双引号{.1}}。

重叠数据

您将文件打开到名为"preferences.txt"的变量中。此变量的值是您需要关闭的值。但是,在将数据设置为文件的值(open_pre)时,将覆盖该数据。这意味着变量的值不再是您需要关闭的文件流,而是文件的内容。你不能关闭一个字符串,只能关闭一个文件,所以在第一个错误之后你将获得第二个错误。相反,在阅读时不要覆盖该文件。

隐藏错误

您使用open_pre = open_pre.read() / try子句这一事实意味着您无法收到包含所有错误信息的错误消息。在调试时,请记住不友好的错误消息比模糊但可读的输出更好。更好的练习(可以帮助您找到第一个错误),是指定您要查找的错误,以便使用不友好的错误捕获其他错误。

总结

正确的代码看起来像这样,修复了上面的所有错误。

except