Python没有将beautifulsoup数据打印到.txt文件(或者我找不到它)

时间:2014-08-04 13:59:15

标签: python beautifulsoup xlrd

我试图将所有锚文本放在txt文件的页面上

print(anchor.get('href'))
with open('file.txt', 'a') as fd:
    fd.write(anchor.get('href') + '\n')

并且脚本执行时没有错误但我在计算机上的任何地方都找不到file.txt。我错过了一些非常明显的事情吗?

3 个答案:

答案 0 :(得分:1)

使用文件打开模式a(追加),如果文件尚不存在,将创建该文件,否则写入将附加到文件末尾。正如问题所写,文件将在正在运行的进程的当前目录中创建...看那里。

from bs4 import BeautifulSoup
import requests

response = requests.get('http://httpbin.org/')
soup = BeautifulSoup(response.text)
with open('file.txt', 'a') as fd:
    links = (link.get('href') for link in soup.find_all('a'))
    fd.write('\n'.join(links) + '\n')

答案 1 :(得分:0)

尝试设置文件名的完整路径,以便在此路径中找到。

示例:

print(anchor.get('href'))
with open('/home/wbk/file.txt', 'a') as fd:
    fd.write(anchor.get('href') + '\n')

是的,你可以使用' a'创建一个新文件,虽然这不是一个好习惯。 ' a'是按照描述doc

将数据附加到现有文件的末尾

答案 2 :(得分:0)

以下代码适用于我:

with open("example.txt","a") as a:
    a.write("hello")

您确定该文件不在您的计算机中吗?你用哪种方式证明了它?在我的情况下,我使用eclipse IDE,所以我必须刷新Eclipse文件资源管理器才能看到它..

试试这个:

with open("prova.txt","a") as a:
    a.write("ciao")
try: open("prova.txt","r")
except: print "file doesn't exist"