Python 字符串剥离后不需要的空行
Python unwanted empty lines after string strip
我有一个 csv
"AA","AB","AC"
"BA","BB","BC"
"CA","CB","CC"
删除字符串后说“csv 格式更改为
AA,AB,AC
BA,BB,BC
CA,CB,CB
我应该怎么做才能避免不需要的线条?
import fileinput
for line in fileinput.FileInput("test.csv",inplace=1):
line = line.replace('"','')
print (line)
看起来你正在打印它,看起来像 Python 3,并且你的文件内容看起来已经包含必要的换行符。因此,您需要告诉 print()
函数不要添加自己的换行符:
print(line, end='')
你为什么要这样做?您应该使用 csv
模块,它会为您处理 ,
和引号。例子-
import csv
with fileinput.FileInput('test.csv',inplace=1) as f:
reader = csv.reader(f)
for row in reader:
print (','.join(row))
Example/Demo -
>>> import csv
>>> with fileinput.FileInput('test.csv',inplace=1) as f:
... reader = csv.reader(f)
... for row in reader:
... print(','.join(row))
...
AA,AB,AC
BA,BB,BC
CA,CB,CC
您看到了额外的行,因为从文件中读取的行以“\n”结尾并且 print(line) 语句附加了一个额外的换行符。
您可以使用 rstrip() 去除尾随的换行符:
import fileinput
for line in fileinput.FileInput("test.csv",inplace=1):
line = line.rstrip().replace('"','')
print (line)
读取时每一行都包含终止换行符。此外 print()
还将添加自己的新行,因此您最终会得到两个新行。
但是您没有按照问题标题的建议使用 strip()
。
要解决这个问题,您可以使用 rstrip()
删除每行末尾的任何空格:
import fileinput
for line in fileinput.FileInput("test.csv",inplace=1):
line = line.replace('"','').rstrip()
print (line)
这将删除额外的换行符,但请注意,它还会删除行尾的其他空格。
另一种方法是防止 print()
添加自己的新行:
Python 2:
print(line), # comma prevents new line
Python 3:
print(line, end='')
我有一个 csv
"AA","AB","AC"
"BA","BB","BC"
"CA","CB","CC"
删除字符串后说“csv 格式更改为
AA,AB,AC
BA,BB,BC
CA,CB,CB
我应该怎么做才能避免不需要的线条?
import fileinput
for line in fileinput.FileInput("test.csv",inplace=1):
line = line.replace('"','')
print (line)
看起来你正在打印它,看起来像 Python 3,并且你的文件内容看起来已经包含必要的换行符。因此,您需要告诉 print()
函数不要添加自己的换行符:
print(line, end='')
你为什么要这样做?您应该使用 csv
模块,它会为您处理 ,
和引号。例子-
import csv
with fileinput.FileInput('test.csv',inplace=1) as f:
reader = csv.reader(f)
for row in reader:
print (','.join(row))
Example/Demo -
>>> import csv
>>> with fileinput.FileInput('test.csv',inplace=1) as f:
... reader = csv.reader(f)
... for row in reader:
... print(','.join(row))
...
AA,AB,AC
BA,BB,BC
CA,CB,CC
您看到了额外的行,因为从文件中读取的行以“\n”结尾并且 print(line) 语句附加了一个额外的换行符。
您可以使用 rstrip() 去除尾随的换行符:
import fileinput
for line in fileinput.FileInput("test.csv",inplace=1):
line = line.rstrip().replace('"','')
print (line)
读取时每一行都包含终止换行符。此外 print()
还将添加自己的新行,因此您最终会得到两个新行。
但是您没有按照问题标题的建议使用 strip()
。
要解决这个问题,您可以使用 rstrip()
删除每行末尾的任何空格:
import fileinput
for line in fileinput.FileInput("test.csv",inplace=1):
line = line.replace('"','').rstrip()
print (line)
这将删除额外的换行符,但请注意,它还会删除行尾的其他空格。
另一种方法是防止 print()
添加自己的新行:
Python 2:
print(line), # comma prevents new line
Python 3:
print(line, end='')