代码如下图所示
显示的错误如下
FileNotFoundError Traceback (most recent call last)
in ()
10 date=data.select(".date")
11 click=data.select(".hit.float-right")
---> 12 with open("data/out.txt","a",encoding='utf-8') as f: #a的方式,每循环一次后追加保存内容。
13 for x,m,n in zip(date,title,click):
14 f.write("{}\t{}\t{}\n".format(x.text,m.text,n.text))
FileNotFoundError: [Errno 2] No such file or directory: 'data/out.txt'
不知道你这个问题是否已经解决, 如果还没有解决的话:该问题的可能原因是代码中指定的输出文件路径不正确所致。如果你是在Windows系统中运行该代码,则需要注意路径的斜杠方向应该为反斜杠'\'而不是正斜杠'/'。解决该问题的方法有以下几个方面:
在代码中打开的文件路径为"data/out.txt",这意味着文件应该在当前目录下的data文件夹中。可以尝试执行以下代码来查看当前工作目录:
import os
print(os.getcwd())
如果输出结果与你期望的不同,则说明代码中打开文件时的路径不正确,需要根据实际情况修改。可以使用以下代码来获取运行代码的文件所在目录,并将文件保存在该目录下:
import os
current_path=os.path.abspath(".")
output_path=os.path.join(current_path,"data","out.txt")
with open(output_path,"w")as f:
date=data.select(".date")
click=data.select(".hit.float-right")
for x,m,n in zip(date,title,click):
f.write("{}\t{}\t{}\n".format(x.text,m.text,n.text))
以上代码将文件保存到了当前工作目录下的data文件夹中。
在运行代码时,有时会出现文件被占用的情况。如果该文件已经被打开或者正在被另一个程序使用,则无法对其进行读写操作。此时需要等待该文件的占用者关闭文件后再进行操作。可以尝试在文件操作前加入以下代码以检查文件是否被占用:
import os
output_path=os.path.join(os.getcwd(),"data","out.txt")
if os.path.isfile(output_path):
try:
with open(output_path,"r")as f:
pass
except IOError:
print("File is being used by another process. Please try again later.")
else:
with open(output_path,"w")as f:
date=data.select(".date")
click=data.select(".hit.float-right")
for x,m,n in zip(date,title,click):
f.write("{}\t{}\t{}\n".format(x.text,m.text,n.text))
以上代码在打开文件前检查文件是否存在及是否被占用,如果文件正在被占用,则提示用户稍后再尝试操作。
在某些情况下,如果用户的权限不足以对文件进行读写操作,则可能会出现类似的错误。此时需要检查用户是否具有对该文件的读写权限。可以使用以下代码来检查文件是否具有写权限:
import os
output_path=os.path.join(os.getcwd(),"data","out.txt")
if os.path.isfile(output_path):
if os.access(output_path,os.W_OK):
with open(output_path,"w")as f:
date=data.select(".date")
click=data.select(".hit.float-right")
for x,m,n in zip(date,title,click):
f.write("{}\t{}\t{}\n".format(x.text,m.text,n.text))
else:
print("Permission denied: you do not have write access to this file.")
else:
with open(output_path,"w")as f:
date=data.select(".date")
click=data.select(".hit.float-right")
for x,m,n in zip(date,title,click):
f.write("{}\t{}\t{}\n".format(x.text,m.text,n.text))
以上代码在打开文件前检查用户是否具有对该文件的写权限,如果没有写权限,则提示用户。
我感觉,应该是您 jupyter 里的路径设置了,您可以检查下。