Skip to main content
 首页 » 编程设计

python之在 Python 中连接 file.write() 中的字符串

2025年05月04日24leader

我正在尝试用 Python 2.7.3 编写一个脚本,它可以从 Excel 电子表格中获取 .csv 文件并将其转换为适合 LaTeX 表格的格式。所以我想读取一个文件,并将数据写入一个新的文本文件,但将所有逗号替换为 & 符号,并在每行末尾附加一个双反斜杠。

例子:
输入

A1,A2,A3   
B1,B2,B3   
C1,C2,C3 

期望的输出

A1 & A2 & A3 \\ 
B1 & B2 & B3 \\ 
C1 & C2 & C3 \\ 

这是我现在拥有的:

old_file = open(selected_file, "r") 
new_file = open("texified_" + selected_file.replace("csv","txt"), "w") 
#Creates new file with format texified_selected_file.txt 
 
for line in old_file: 
    new_file.write(line.replace(",", " & ") + r" \\") 
 
new_file.close() 
old_file.close() 

现在它正确地将逗号替换为与号,但不添加双反斜杠。我认为这是因为反斜杠具有特殊含义,但即使将其设为原始字符串,它仍然不起作用。但是,它会将它添加到最后一行的末尾。

实际输出

A1 & A2 & A3    
B1 & B2 & B3   
C1 & C2 & C3 \\ 

请您参考如下方法:

发生这种情况可能是因为在您的文件中的每一行末尾都有一个换行符,而不是在最后一行 的末尾。

您可以尝试在附加// 之前剥离它,然后单独添加换行符:-

import os 
ls = os.linesep 
 
for line in old_file: 
    new_file.write(line.replace(",", " & ").rstrip() + r' \\ ' + ls)