如何读取 .txt 文件并通过在 python 中的每一行的特定位置/索引后添加 space 来重写
How to reading .txt file and rewriting by adding space after specific position / index for each line in python
我想读取 .txt 文件并在每一行的特定 position/index 之后添加 space。请考虑以下示例以获取更多详细信息。
假设我的文件包含
12345 678 91011 12 1314
在上面的文件中,第一行在特定的 position/index [4] 之后包含 space ,然后在 position/index[8] 之后,在 position/index[14 之后] 之后 position/index[17]
预期输出:
我希望文件中的每一行在特定位置之后都有 space。即对于第一行,我想在索引 [2] 之后添加 space,然后在索引 [6] 之后添加 space,然后在索引 [11] 之后添加 space,然后添加 space 在索引 [21] 之后,依此类推...
123 45 6 78 91 011 12 131 4
提醒一下,我不想替换元素,而是在特定 position/index 之后添加一个新的 space。
正在读取 .txt 文件并在特定的 position/index 之后为 python.
中的每一行添加 space
with open("C:/path-to-file/file.txt", "r") as file:
lines = file.read().split("\n")
newlines = []
for line in lines:
line = line.rstrip()
newline = line[:] + ' ' + line[:] # this line is incorrect
newlines.append(newline)
with open("C:/path-to-file/file.txt", "w") as newfile:
newfile.write("\n".join(newlines)
在特定的 position/index 之后添加 space 为文本文件的每一行添加
假设我的文件包含:
12345 678 91 011 12 1314
预期输出:
123 45 6 78 91 011 12 131 4
考虑一下:
space_indecies = [2, 5, 8]
with open("C:/path-to-file/file.txt", "r") as file:
lines = file.read().split("\n")
newlines = []
for line in lines:
line = line.rstrip()
for n, i in enumerate(space_indecies):
line = line[:i + n] + ' ' + line[n + i:]
newlines.append(line)
with open("C:/path-to-file/file.txt", "w") as newfile:
newfile.write("\n".join(newlines))
i + n
是必需的,因为您要插入 space 的索引会随着每个 space 插入
而变化
这是另一个使用生成器表达式的解决方案。
如果您愿意提供索引列表 after each space 而不是 before,这将工作:
line = '12345 678 91011 12 1314'
idx = [3, 7, 12, 22]
' '.join([line[i:j] for i, j in zip([None]+idx, idx+[None])])
这给出 '123 45 6 78 91 011 12 131 4'
.
否则您需要先为每个索引加一个:
idx = [2, 6, 11, 21]
idx = [i+1 for i in idx]
我想读取 .txt 文件并在每一行的特定 position/index 之后添加 space。请考虑以下示例以获取更多详细信息。
假设我的文件包含
12345 678 91011 12 1314
在上面的文件中,第一行在特定的 position/index [4] 之后包含 space ,然后在 position/index[8] 之后,在 position/index[14 之后] 之后 position/index[17]
预期输出: 我希望文件中的每一行在特定位置之后都有 space。即对于第一行,我想在索引 [2] 之后添加 space,然后在索引 [6] 之后添加 space,然后在索引 [11] 之后添加 space,然后添加 space 在索引 [21] 之后,依此类推...
123 45 6 78 91 011 12 131 4
提醒一下,我不想替换元素,而是在特定 position/index 之后添加一个新的 space。
正在读取 .txt 文件并在特定的 position/index 之后为 python.
中的每一行添加 spacewith open("C:/path-to-file/file.txt", "r") as file:
lines = file.read().split("\n")
newlines = []
for line in lines:
line = line.rstrip()
newline = line[:] + ' ' + line[:] # this line is incorrect
newlines.append(newline)
with open("C:/path-to-file/file.txt", "w") as newfile:
newfile.write("\n".join(newlines)
在特定的 position/index 之后添加 space 为文本文件的每一行添加
假设我的文件包含:
12345 678 91 011 12 1314
预期输出:
123 45 6 78 91 011 12 131 4
考虑一下:
space_indecies = [2, 5, 8]
with open("C:/path-to-file/file.txt", "r") as file:
lines = file.read().split("\n")
newlines = []
for line in lines:
line = line.rstrip()
for n, i in enumerate(space_indecies):
line = line[:i + n] + ' ' + line[n + i:]
newlines.append(line)
with open("C:/path-to-file/file.txt", "w") as newfile:
newfile.write("\n".join(newlines))
i + n
是必需的,因为您要插入 space 的索引会随着每个 space 插入
这是另一个使用生成器表达式的解决方案。
如果您愿意提供索引列表 after each space 而不是 before,这将工作:
line = '12345 678 91011 12 1314'
idx = [3, 7, 12, 22]
' '.join([line[i:j] for i, j in zip([None]+idx, idx+[None])])
这给出 '123 45 6 78 91 011 12 131 4'
.
否则您需要先为每个索引加一个:
idx = [2, 6, 11, 21]
idx = [i+1 for i in idx]