如何通过选择多行来反转字符串内容?
How can I reverse string contents by selecting multiple lines?
我在网上找到了很多用于反转字符串和整个文本文件的资源,但都没有产生我想要的结果。
例如,基本文本文件可能如下所示:
1
Person One
Company Name
100 San Francisco Blvd, 000
Dublin CA 94568
2
Person Two
Company Name
111 Grove St, 000
Montreal CANADA 93940
这就是文件的输入方式。我正在寻找的是:
2
Person Two
Company Name
111 Grove St, 000
Montreal CANADA 93940
1
Person One
Company Name
100 San Francisco Blvd, 000
Dublin CA 94568
我在网上尝试了几种解决方案,结果通常是以下之一:
1) 文字颠倒了。例如,公司名称变为 emaN ynapmoC。
或
2) 发生了这样的事情:
Montreal CANADA 93940
111 Grove St, 000
Company Name
Person Two
2
给出的是列长度(我总是知道地址字段中有多少行),我总是知道总共有多少行。每条记录之间有一个空白 space 行。
我想弄清楚如何从本质上获取 filename.txt 并将其转换为文件名-reversed.txt。
TLDR:我想取 x 行并反转它们,这样它们就不会 mixed/jumbled 上升。
您需要将文件拆分为 "records"。一旦有了记录而不仅仅是行,颠倒顺序应该是一项微不足道的任务。
最简单的方法是在每第 N 个换行符处将文件分成字符串。您可以将这些 N 行字符串加载到列表中。然后反向循环列表并将记录转储到文件中。
在python中:
blocks = []
with open(filename, "r") as f:
block = ""
for i, line in enumerate(f):
block += line
if i % block_line_size == 0:
blocks.append(block)
block = ""
with open(new_file_name, "w") as f2:
for block in blocks[::-1]:
f2.write(block)
var groups = Regex.Split(File.ReadAllText(filename), @"\r?\n\r?\n", RegexOptions.Singleline);
var newtext = string.Join(Environment.NewLine+ Environment.NewLine, groups.Reverse());
File.WriteAllText(filename, newtext);
我在网上找到了很多用于反转字符串和整个文本文件的资源,但都没有产生我想要的结果。
例如,基本文本文件可能如下所示:
1
Person One
Company Name
100 San Francisco Blvd, 000
Dublin CA 94568
2
Person Two
Company Name
111 Grove St, 000
Montreal CANADA 93940
这就是文件的输入方式。我正在寻找的是:
2
Person Two
Company Name
111 Grove St, 000
Montreal CANADA 93940
1
Person One
Company Name
100 San Francisco Blvd, 000
Dublin CA 94568
我在网上尝试了几种解决方案,结果通常是以下之一:
1) 文字颠倒了。例如,公司名称变为 emaN ynapmoC。
或
2) 发生了这样的事情:
Montreal CANADA 93940
111 Grove St, 000
Company Name
Person Two
2
给出的是列长度(我总是知道地址字段中有多少行),我总是知道总共有多少行。每条记录之间有一个空白 space 行。
我想弄清楚如何从本质上获取 filename.txt 并将其转换为文件名-reversed.txt。
TLDR:我想取 x 行并反转它们,这样它们就不会 mixed/jumbled 上升。
您需要将文件拆分为 "records"。一旦有了记录而不仅仅是行,颠倒顺序应该是一项微不足道的任务。
最简单的方法是在每第 N 个换行符处将文件分成字符串。您可以将这些 N 行字符串加载到列表中。然后反向循环列表并将记录转储到文件中。
在python中:
blocks = []
with open(filename, "r") as f:
block = ""
for i, line in enumerate(f):
block += line
if i % block_line_size == 0:
blocks.append(block)
block = ""
with open(new_file_name, "w") as f2:
for block in blocks[::-1]:
f2.write(block)
var groups = Regex.Split(File.ReadAllText(filename), @"\r?\n\r?\n", RegexOptions.Singleline);
var newtext = string.Join(Environment.NewLine+ Environment.NewLine, groups.Reverse());
File.WriteAllText(filename, newtext);