【发布时间】:2019-11-18 22:09:42
【问题描述】:
我有一个脚本,用于从外部 API 请求数据。我的脚本包含复杂的逻辑,描述它需要很长时间。在我的脚本的某个时刻,我需要打开一个文件,遍历它并从中提取每个值。
with open(os.path.abspath("/data/data/com.termux/files/home/storage/forecast/endpoints/leagueIdExtracted.txt"), "r+") as leagueIdExtracted:
print("Check is file {} was opened".format(leagueIdExtracted))
for id in leagueIdExtracted:
print("ID {} from opened file".format(id))
savedLeagues.add(int(str(id[:-1])))
print("League IDs {} from file which contain alredy requested IDs".format(savedLeagues))
但有时不取决于我在上面打开的文件不存在
with open(os.path.abspath("/data/data/com.termux/files/home/storage/forecast/endpoints/leagueIdExtracted.txt"), "r+") as leagueIdExtracted:
因此,当我打开此文件时,我必须以"w+" 模式打开它。在"w+" 中打开它保证将创建并打开一个不存在的文件。但是当我的脚本以"w+" 模式打开文件时,它无法从中提取值。
for id in leagueIdExtracted:
print("ID {} from opened file".format(id))
savedLeagues.add(int(str(id[:-1])))
因此,我必须在 "w+" 和 "r" 模式之间手动切换。谁能告诉我Python是否有一个模式,如果它不存在"w+"模式,它会在打开文件时创建文件,并且还允许将数据提取为
"r" 模式?
【问题讨论】:
-
你为什么不直接寻找文件的开头?
-
@juanpa.arrivillaga 你是什么意思?
-
啊,对不起,我忘记了,
w+正在截断文件,这就是问题所在,对吗?
标签: python python-3.x file file-read