我有一个文件,当我打开它时,它会打印出一些段落。我需要把这些段落和一个空格连在一起,形成一个大的正文。
例如
for data in open('file.txt'):
print data
输出如下:
Hello my name is blah. What is your name?
Hello your name is blah. What is my name?
输出怎么可能是这样?以下内容:
Hello my name is blah. What is your name? Hello your name is blah. What is my name?
我试着用这样的空格替换换行符:
for data in open('file.txt'):
updatedData = data.replace('\n',' ')
但那只会去掉空行,不会连接段落
也试着像这样加入:
for data in open('file.txt'):
joinedData = " ".join(data)
但这会用空格分隔每个字符,同时也不会去掉段落格式。
您正在单个行上循环,而添加新行的是
print
语句。以下方法可行:使用尾随逗号,
print
不添加换行符,.rstrip()
调用从换行符中删除尾随换行符。或者,您需要将所有读取和剥离的行传递给
' '.join()
,而不是每个行本身。python中的字符串是to序列,因此当将第行中包含的字符串自身传递给' '.join()
时,它将被解释为单独的字符。以下代码使用了两个新技巧:上下文管理器和列表理解:
with
语句使用file对象作为上下文管理器,这意味着当我们处理完with
语句下面缩进的块时,文件将自动关闭。[.. for .. in ..]
语法从inputfile
对象中生成一个列表,在该对象中,我们将每一行转换为一个版本,在结尾没有换行符。您可以使用
str.join
:line.strip()
将从行的两端删除所有类型的空白。 您可以使用line.rstrip("\n")
只删除后面的"\n"
。如果
file.txt
包含:那么输出将是:
相关问题 更多 >
编程相关推荐