把我的头发拉出来......在最后一小时里一直在玩这个但是我不能让它做我想做的事,即。删除换行序列。
def add_quotes( fpath ):
ifile = open( fpath, 'r' )
ofile = open( 'ofile.txt', 'w' )
for line in ifile:
if line == '\n':
ofile.write( "\n\n" )
elif len( line ) > 1:
line.rstrip('\n')
convertedline = "\"" + line + "\", "
ofile.write( convertedline )
ifile.close()
ofile.close()
答案 0 :(得分:22)
线索在rstrip
的签名中。
它返回字符串的副本,但删除了所需的字符,因此您需要为line
分配新值:
line = line.rstrip('\n')
这允许有时非常方便的操作链接:
"a string".strip().upper()
正如Max. S在评论中所说,Python字符串是不可变的,这意味着任何“变异”操作都会产生变异副本。
这就是它在许多框架和语言中的工作方式。如果你真的需要一个可变的字符串类型(通常是出于性能原因),那就有字符串缓冲类。
答案 1 :(得分:3)
你可以这样做
def add_quotes( fpath ):
ifile = open( fpath, 'r' )
ofile = open( 'ofile.txt', 'w' )
for line in ifile:
line=line.rstrip()
convertedline = '"' + line + '", '
ofile.write( convertedline + "\n" )
ifile.close()
ofile.close()
答案 2 :(得分:2)
在Skurmedel的回答和评论中提到,你需要做类似的事情:
stripped_line = line.rstrip()
然后写出stripped_line。