gpt4 book ai didi

python - line.strip() 方法说明

转载 作者:太空宇宙 更新时间:2023-11-03 20:59:56 32 4
gpt4 key购买 nike

语言:python(版本:3.7.3)熟练程度:新手

我想删除文件每一行中的所有前导和尾随空格。因此,我使用了内置方法“strip()”,它几乎完成了这项工作,但我的代码从文件底部开始不采取任何行动,导致文件中的行重复。任何帮助都将非常有助于实现目标。

我的代码如下:

class filecorrection:

def removeLeadingandTrailingSpacesinaFile(self, fromFile):
with open(fromFile, 'r+') as file:
lines = file.readlines()
for line in lines:
file.write(line.strip() + "\n")

cm = filecorrection()
cm.removeLeadingandTrailingSpacesinaFile("filepath")

我尝试使用seek方法将指针带到文件的开头,但没有得到完美的输出。

class filecorrection:

def removeLeadingandTrailingSpacesinaFile(self, fromFile):
with open(fromFile, 'r+') as file:
lines = file.readlines()
**file.seek(0)**
for line in lines:
file.write(line.strip() + "\n")

cm = filecorrection()
cm.removeLeadingandTrailingSpacesinaFile("filepath")

预期:(删除尾随和前导空格)

<book id="bk105">
<author>Corets, Eva</author>
<title>The Sundered Grail</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>testing</publish_date>
</book>

实际:

  <book id="bk105">
<author>Corets, Eva</author>
<title>The Sundered Grail</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>testing</publish_date>
</book><book id="bk105">
<author>Corets, Eva</author>
<title>The Sundered Grail</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>testing</publish_date>
</book>

最佳答案

您可以像这样打开文件两次

class filecorrection:

def removeLeadingandTrailingSpacesinaFile(self, fromFile):
lines = []

with open(fromFile, 'r') as file:
lines = file.readlines()

with open(fromFile, "w") as file:
for line in lines:
file.write(line.strip() + "\n")

cm = filecorrection()
cm.removeLeadingandTrailingSpacesinaFile("test.xml")

而不是尝试同时读取和写入文件。以写入模式 (w) 打开文件会将文件截断为零长度并从头开始写入。

关于python - line.strip() 方法说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55773912/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com