如何将数组的内容写入文本文件,每行一个数据?

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")

以上是关于如何将数组的内容写入文本文件,每行一个数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何用fortran 在文本文件最后写入内容

如何将EXCEL表内每行的数据复制到文本文档内,但文本里显示不要分行,以,号隔开就行了

在linux中给一个文本文件写内容的方法(三种)

PHP - 在每行末尾写入文件

VB6.0中如何实现逐行读入文本文件?

将 textFields/textArea 写入文本文件