我有一个python脚本'main.py',它调用另一个名为'getconf.py'的python脚本,该脚本从文件'configuration.txt'中读取。这就是它的样子:
if __name__ == "__main__":
execfile("forprolog.py") # this creates configuration.txt
execfile("getconf.py")
当通过main.py
调用getconf.py时,它将configuration.txt
视为空文件,无法从中读取字符串。
这是我从文件中读取的内容:
f1 = open("configuration.txt")
conf = f1.read() #this string appears to be empty
print f1
返回<open file 'D:\\DIPLOMA\\PLANNER\\Exe\\configuration.txt', mode 'r' at 0x01A080D0>
print f1.read()
返回一个空字符串
我怀疑失败的原因是在调用getconf.py
之前立即写入了文件。如果main.py
已经存在configuration.txt
那就可以了。在操作之间添加时间延迟并不能解决问题。
非常感谢任何帮助!
答案 0 :(得分:0)
我看到了与此相关的其他问题:
Python read() function returns empty string
尝试在阅读之前添加此行:
file.seek(0)
https://stackoverflow.com/a/16374481/4733992
如果这不能解决问题,你仍然可以逐行获取这些行并将它们添加到一个字符串中:
file = open("configuration.txt", 'r')
file_data = ""
for line in file:
file_data += line
file.close()
答案 1 :(得分:0)
我发现了我的问题,这是因为我没有关闭我写的文件。感谢所有试图提供帮助的人。