在分割所有空白后重写回文件?

2024-04-26 10:22:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个有趣的问题。我使用以下方法拆分文件中的空白:

words = []
with open(fname, 'r') as f:
  words = f.read().split()

之后,我用其他单词替换了文件中的一些字符串,并将所有内容存储到words列表中。但是,现在我已经将所有内容都放到了一个列表中,我想将内容写回到同一个文件中,所有的空白仍然存在。我还希望我替换的所有单词都在它们原来的单词所在的地方。如果可以的话,这可能吗?如果是这样,有人能给我指出正确的方向吗?谢谢!你知道吗


Tags: 文件方法字符串内容列表readas地方
2条回答
with open(fname, 'w'+) as fh: 
    fh.write(' '.join(words))

应该保留顺序,因为words列表以相同的顺序维护它们。你知道吗


编辑:下面创建一个list[0] = ['Hello', 'there!']形式的嵌套列表,这意味着您必须更新更改问题中提到的字符串的代码。你知道吗

with open(infile, 'r') as fh:
    input = fh.read().split('\n')

lines = []
for line in input:
    lines.append(line.split(' '))

要将其写回文件,以下内容就足够了:

with open(outfile, 'w+') as fh:
    for line in lines:
        fh.write(' '.join(line) + '\n')

您需要re.split,并创建一个组来保留空白:

In [3]: re.split("(\s+)", "this is a test! Hello world.")
Out[3]: ['this', ' ', 'is', ' ', 'a', ' ', 'test!', ' ', 'Hello', ' ', 'world.']

注意,如果文档中包含换行符,这将保留换行符。你知道吗

相关问题 更多 >