如何将数组的内容写入文本文件,每行一个数据?
Posted
技术标签:
【中文标题】如何将数组的内容写入文本文件,每行一个数据?【英文标题】:How to write content of an array to a text file, one data on each line? 【发布时间】:2021-03-11 14:47:34 【问题描述】:我有一个 Python 文件,它打印出数组的内容,每行一个数据,print(a['title'])
,我想将此数据 (a['title']
) 写入一个文本文件,每个数据都在新行上。
这是我的代码:
driver.get('https://www.webstie.com/')
html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
a = soup.select('div.class_name a')
for a in soup.select('div.class_name a'):
#print(a['title'])
textList = (a['title'])
outF = open("file1.txt", "a")
for line in textList:
outF.write(line)
outF.write("\n")
outF.close()
问题是当我使用\n
时,它会写入数据,但每个字母都换行。
如果我取出\n
,像这样:outF.write("")
,它会将数据写入一行。
S
e
a
r
c
h
f
o
r
"
k
e
y
w
o
r
d
不使用\n
的输出:
Search for "keyword result one"Search for "keyword result two"Search for "keyword result three"
我想要的示例输出:
Search for "keyword result one"
Search for "keyword result two"
Search for "keyword result three"
我做错了什么?
【问题讨论】:
能否请您添加print(repr(a['title']))
并向我们展示结果?
似乎 textList = (a['title']) 将 textList 设置为一个字符串,然后您的循环遍历该字符串中的每个单独的字符。
@Stef,感谢您的回复,print(repr(a['title']))
将打印与print(a['title'])
相同的内容
【参考方案1】:
在a
标签循环的末尾写上\n
,甚至不用费心循环该行的字符:
driver.get('https://www.webstie.com/')
html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
a = soup.select('div.class_name a')
with open("file1.txt", "w") as f:
for a in soup.select('div.class_name a'):
text = a["title"]
f.write(text + "\n")
【讨论】:
谢谢你的回复,我试过你的代码,它不会向文件写入任何内容。 感谢@Aplet123 的代码,即使您的代码不起作用,但我将您的方法应用于我的代码并且它起作用了,所以我没有使用textList = (a['title'])
,而是将其替换为:@987654325 @ 最后我使用 outF.write(textList + '\n')
而不是:outF.write("\n")
以上是关于如何将数组的内容写入文本文件,每行一个数据?的主要内容,如果未能解决你的问题,请参考以下文章