Skip to main content
 首页 » 编程设计

Python readlines() 并将数据附加到每一行输出到一行

2025年05月04日16dyllove98

我有一个 csv 文件,其中包含 3 行,如下所示:

Dallas 
Houston 
Ft. Worth 

我想做的是能够读取其中的内容并从中创建链接,但将所有行输出在一行中。示例输出需要像这样:

<a href="/dallas/">Dallas</a> <a href="/houston/">Houston</a> <a href="/ft-worth/">Ft. Worth</a> 

这是我到目前为止的代码,它读取 csv 文件并输出,但它创建了不同的行,我只想要一行,而且我需要附加超链接的 html 代码。

f_in = open("data_files/states/major_cities.csv",'r') 
for line in f_in.readlines(): 
    f_out.write(line.split(",")[0]+"") 
f_in.close() 
f_out.close() 

请您参考如下方法:

那是因为 f_in.readlines() 中的每一行 line 都在末尾附加了一个换行符。 (尝试在该循环中添加 print(repr(line)))。您需要做的是在 write 写入 f_out 之前删除该换行符:

for line in f_in.readlines():       
    actual_line = line.rstrip('\n') 

您的整个代码如下所示:

import re  
 
with open('data_files/states/major_cities.csv') as f_in: 
    with open('output_file.csv', 'w') as f_out: 
        for line in f_in: 
            city = line.rstrip('\n') 
            f_out.write('<a href="/{}/">{}</a>'.format( 
                re.sub(r'\W+', '-', city.lower()),  
                city 
            )) 

with 语句负责关闭文件,因此您不需要最后两行。

更新

正如 J.F. Sebastian 指出的那样,也有必要 slugify城市名称来实现你想要的输出。