nf=open(Output_File,'w+')
with open(Input_File,'read') as f:
for row in f:
Current_line = str(row)
Reformated_line=str(','.join(Current_line.split('|')[1:-1]))
nf.write(Reformated_line+ "\n")
我正在尝试读取表格格式的输入文件
并将其写入 CSV 文件,但我的输出还包含最后一个空行。如何删除 CSV 中最后一个空行?
最佳答案
听起来您的输入文件中有一个空行。从您的评论来看,您实际上有一个非空行,其中没有 |
字符。无论哪种情况,检查结果行是否为空都很容易。
试试这个:
#UNTESTED
nf=open(Output_File,'w+')
with open(Input_File,'read') as f:
for row in f:
Current_line = str(row)
Reformated_line=str(','.join(Current_line.split('|')[1:-1]))
if Reformatted_line:
nf.write(Reformated_line+ "\n")
其他说明:
- 您应该一致地使用
with
。以相同的方式打开这两个文件。 str(row)
是一个无操作。row
已经是一个 str。str(','.join(...))
同样是多余的。open(..., 'read')
不是open()
模式参数的有效使用。您应该使用r
甚至完全省略该参数。- 我不想在更改现有数据的格式时引入新名称。也就是说,我更喜欢
row = row.split()
而不是Reformatted_line = row.split()
。
这是一个包含这些和其他建议的版本:
with open(Input_File) as inf, open(Output_File, 'w+') as outf:
for row in inf:
row = ','.join(row.split('|')[1:-1])
if row:
outf.write(row + "\n")
关于python - 删除 CSV 文件中的最后一个空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38857870/