Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
由于创建新文件,Python中的~~循环正在消亡~~读/写问题已解决_Python - Fatal编程技术网

由于创建新文件,Python中的~~循环正在消亡~~读/写问题已解决

由于创建新文件,Python中的~~循环正在消亡~~读/写问题已解决,python,Python,当我启动电脑时,我在无限循环中运行一个python文件。这个脚本将数据保存到一个txt文件中,我正在读取它以查看我获取的数据是否已经获取。我尝试了很多不同的读/写类型,r+w+a+,如果文件还不存在。。。脚本停止。我正在打印文本文件的内容,如果它尚未创建,则循环不会打印任何内容。这也可能是.read()的问题?我已尝试使用.seek(0),但无效 以下是代码的文件写入部分: def是唯一的在线(拖缆): 文件内容='Null' 是否在线?是否新建=错误 文件名=拖缆+“Streams.txt”

当我启动电脑时,我在无限循环中运行一个python文件。这个脚本将数据保存到一个txt文件中,我正在读取它以查看我获取的数据是否已经获取。我尝试了很多不同的读/写类型,r+w+a+,如果文件还不存在。。。脚本停止。我正在打印文本文件的内容,如果它尚未创建,则循环不会打印任何内容。这也可能是.read()的问题?我已尝试使用.seek(0),但无效

以下是代码的文件写入部分:

def是唯一的在线(拖缆):
文件内容='Null'
是否在线?是否新建=错误
文件名=拖缆+“Streams.txt”
打开(r'D:\StreamerDates\\\\'+文件名'a+')作为当前文件:
当前_文件。查找(0)
r=requests.get(url=API_端点+streamer,headers=head)
数据=r.text
#打印(数据.replace(“,”).replace(“\”).split(“,”))
如果“键入”数据和“实时”数据:
clean\u data=data.replace(“,”).replace(“\”).split(“,”)
对于clean_数据中的字符串:
如果字符串中的“起始位置”:
开始日期=字符串
打印(“开始日期=”+开始日期)
尝试:
file_contents=当前_file.read()
除:
打印('读取文件时出错:P')
打印(“文件内容:+文件内容”)
如果文件内容中的日期开始:
是否在线?是否新建=错误
其他:
_online_new=正确吗
如果是“在线”或“新”:
当前文件。写入(开始日期+'\n')
elif len(文件内容)>500:
如果os.path.exists(r'D:\StreamerDates\\'+文件名):
删除(“demofile.txt”)
当前_文件。关闭()
返回是在线的还是新的
大体上:

while(True):
对于拖缆中的拖缆:
如果是唯一的(拖缆):
url='twitch.tv/'+拖缆
#打印(拖缆+“\'的流已打开”)
webbrowser.get(windowsChromePath).open(url)

您正在使用打开文件

with open(r'D:\StreamerDates\\' + fileName , 'a+') as currentFile:
对于“a+”,这意味着您可以将数据附加到文件中,而不是读取,要读取,您必须有另一个

with open(r'D:\StreamerDates\\' + fileName , 'r') as currentFile:
但是有一个“r”这样你就可以读取里面的数据了

您也不需要使用
currentFile.close()
,因为
with
语句可以为您这样做


事实证明,我在这里有点错,a+确实是这样读的。


我认为问题在于您正在创建一个新文件,并将
datestarted
变量写入其中,但只有当
IsOnline为True时才会写入该变量<当文件中有
datestarted
时,code>IsOnline
变为true。所以它永远不会写,读到的东西也不会返回任何东西,这就是我认为你看到的。这没有错,您打开文件时使用的文件中没有任何内容

with open(r'D:\StreamerDates\\' + fileName , 'a+') as currentFile:
对于“a+”,这意味着您可以将数据附加到文件中,而不是读取,要读取,您必须有另一个

with open(r'D:\StreamerDates\\' + fileName , 'r') as currentFile:
但是有一个“r”这样你就可以读取里面的数据了

您也不需要使用
currentFile.close()
,因为
with
语句可以为您这样做


事实证明,我在这里有点错,a+确实是这样读的。


我认为问题在于您正在创建一个新文件,并将
datestarted
变量写入其中,但只有当
IsOnline为True时才会写入该变量<当文件中有
datestarted
时,code>IsOnline
变为true。所以它永远不会写,读到的东西也不会返回任何东西,这就是我认为你看到的。没有错,文件中没有任何内容,这最终导致了读/写问题。讨厌我必须检查文件是否存在,并因此更改我的读/写模式。

这最终导致了读/写问题。讨厌我必须检查文件是否存在,并因此改变我的读/写模式。

这里没有循环,还有很多不相关的代码。请尝试提供一个再现问题的最小示例。这里没有循环,并且有很多不相关的代码。请尝试提供一个再现问题的最小示例。将其放入r+表示“没有这样的文件或目录”,如果不存在,我需要它来创建该文件。将其放入r+表示“没有这样的文件或目录”,如果不存在,我需要它来创建该文件。