首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在C#中读取和删除.txt文件中的随机行

,可以通过以下步骤实现:

  1. 读取.txt文件:使用StreamReader类打开文件,并使用ReadLine方法逐行读取文件内容。可以使用using语句确保文件在使用完后被正确关闭。
代码语言:txt
复制
using System;
using System.IO;

string filePath = "path/to/file.txt";
using (StreamReader sr = new StreamReader(filePath))
{
    string line;
    while ((line = sr.ReadLine()) != null)
    {
        // 处理每一行的内容
    }
}
  1. 获取随机行:可以使用Random类生成一个随机数,然后根据随机数选择要读取的行。可以使用List<string>来存储读取的所有行,然后根据随机数索引获取随机行。
代码语言:txt
复制
using System;
using System.Collections.Generic;
using System.IO;

string filePath = "path/to/file.txt";
List<string> lines = new List<string>();

using (StreamReader sr = new StreamReader(filePath))
{
    string line;
    while ((line = sr.ReadLine()) != null)
    {
        lines.Add(line);
    }
}

Random random = new Random();
int randomIndex = random.Next(0, lines.Count);
string randomLine = lines[randomIndex];
  1. 删除随机行:可以使用StreamWriter类创建一个新的文件,并将除随机行以外的所有行写入新文件。然后可以使用File类的Delete方法删除原始文件,并使用File类的Move方法将新文件重命名为原始文件名。
代码语言:txt
复制
using System;
using System.Collections.Generic;
using System.IO;

string filePath = "path/to/file.txt";
string tempFilePath = "path/to/temp.txt";
List<string> lines = new List<string>();

using (StreamReader sr = new StreamReader(filePath))
{
    string line;
    while ((line = sr.ReadLine()) != null)
    {
        lines.Add(line);
    }
}

Random random = new Random();
int randomIndex = random.Next(0, lines.Count);
lines.RemoveAt(randomIndex);

using (StreamWriter sw = new StreamWriter(tempFilePath))
{
    foreach (string line in lines)
    {
        sw.WriteLine(line);
    }
}

File.Delete(filePath);
File.Move(tempFilePath, filePath);

以上是在C#中读取和删除.txt文件中的随机行的完整步骤。请注意,这只是一个示例,实际应用中可能需要根据具体需求进行适当的修改和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python读取txt文件json数据

大家好,又见面了,我是你们朋友全栈君。 txt文本文件能存储各式各样数据,结构化二维表、半结构化json,非结构化纯文本。...存储excel、csv文件二维表,都是可以直接存储txt文件。 半结构化json也可以存储txt文本文件。...最常见txt文件存储一群非结构化数据: 今天只学习:从txt读出json类型半结构化数据 import pandas as pd import json f = open("...../data/test.txt","r",encoding="utf-8") data = json.load(f) 数据读入完成,来看一下data数据类型是什么?...print(type(data)) 输出结果是:dict 如果你分不清dictjson,可以看一下我这篇文章 《JSON究竟是个啥?》

7K10

Matlab读取txt文件几种方法

matlab读取文本文件几种函数: 1、load——适合读取纯数据文本; 2、importdata——只读取数据,自动省略数据格式前后字符,超大文件不适合; 3、textread、textscan...——适合读取行列规整文本,会存到元胞,可通过headerlines省略读取字段名(字符); 4、csvread、dlmread——适合读取csv、xsl等文件格式文本; 5、fprintf、fscanf...——适合读取复杂文本(中英文、数字串混杂出现); 一、纯数据文件(没有字母中文,纯数字) 对于这种txt文档,从matalb读取就简单多了 例如test.txt文件,内容为“17.901 -1.1111...window输入load test.txt ,然后就会产生一个test数据文件,内容跟test.txt数据一样;另一种方法是file/import data……/next/finish 也可产生一个叫...这里%s个数[a1,a2,a3,a4]对应。

17.3K21

定期删除文件文件——C#

下面是自定义一个函数,参数分别为:文件夹名称、文件后缀、保存天数 逻辑是获取当前系统时间,和文件创建时间去作差,如果结果大于保存天数,就删除它 /// ...string[] files = Directory.GetFiles(fileDirect, postFix, SearchOption.AllDirectories); //获取该目录下所有 .txt...File.Delete(file); //删除超过时间文件 } } } 调用如下: 我把文件夹路径存到ini文件,首先读出路径...同样把保存天数存到ini文件(存是控件ridiobutton索引值,具体操作点击这里),然后读出索引值再使用switch来解析索引值对应天数 最后调用删除文件函数,这里删除是excel表格...", "day"); //定期删除文件天数 int deleteDayValue = -1; switch (deleteDay)

2.2K41

VimVi删除、多行、范围、所有及包含模式

使用linux服务器,免不了vi编辑打交道,命令行下删除数量少还好,如果删除很多,光靠删除键一点点删除真的是头痛,还好Vi有快捷命令可以删除多行、范围。 删除 Vim删除命令是dd。...删除多行 要一次删除多行,请在dd命令前添加要删除行数,例如,要删除,请执行以下操作: 1、按Esc键进入正常模式。 2、将光标放在要删除第一上。...$-最后一。 %-所有。 这里有一些例子: :.,$d-从当前行到文件末尾。 :.,1d-从当前行到文件开头。 10,$d-从第十文件末尾。...删除包含模式 基于特定模式删除多行语法如下: :g//d 全局命令(g)告诉删除命令(d)删除所有包含。 要匹配与模式不匹配,请在模式之前添加感叹号(!): :g!.../foo/d-删除所有不包含字符串“foo”。 :g/^#/d-从Bash脚本删除所有注释,模式^#表示每行以#开头。 :g/^$/d-删除所有空白,模式^$匹配所有空行。

75.6K32

linux删除文件最后N小总结

现在,假设我们要从rumenz.txt文件删除最后三 ( n=3 ) 。...sed命令及其地址范围,我们可以快速删除文件从给定行号开始到最后一: sed 'GIVEN`LINE`NO, $d' input_file 例如,让我们从第5删除直到rumenz.txt结尾...)-3+1)),$ d" rumenz.txt 使用tacsed命令 使用sed解决问题难点 在于计算要删除第一号。...但是,如果我们可以颠倒输入文件顺序,问题就会变成从文件删除前 n 。一个简单 sed 单行sed 1,n d可以删除前n。之后,如果我们再次反转线条,我们问题就解决了。...第一遍,它会找出文件总行数,第二遍,我们打印我们想要保留那些: $ awk -v n=3 'NR==FNR{total=NR;next} FNR==total-n+1{exit} 1'

7.3K10

python读取txt一列称为_python读取txt文件并取其某一列数据示例

下面是代码作用是将数据从数据库读取出来分批次写入txt文本文件,方便我们做数据预处理训练机器学习模型. #%% import pymssql as MySQLdb #这里是python3 如果你是python2...最近利用Python读取txt文件时遇到了一个小问题,就是计算两个np.narray()类型数组时,出现了以下错误: TypeError: ufunc ‘subtract’ did not contain...a loop with signature matching types dtype(‘ 如何用python循环读取下面.txt文件,用红括号标出来数据呢?...关键字with不再需要访问文件后将其关闭 要让python打开不与程序文件位于同一目录文件,需要提供文件路径,它让python到系统指定位置去查找......xml 文件 .excel文件数据,并将数据类型转换为需要类型,添加到list详解 1.读取文本文件数据(.txt结尾文件)或日志文件(.log结尾文件) 以下是文件内容,文件名为data.txt

5.1K20

Shell脚本循环读取文件每一

do echo $line done 使用while循环 while read -r line do echo $line done < filename While循环中read命令从标准输入读取...在这里,-r选项保证读入内容是原始内容,意味着反斜杠转义行为不会发生。输入重定向操作符< file打开并读取文件file,然后将它作为read命令标准输入。...今天遇到一个问题弄了好久才搞明白:我想在循环中动态链接字符串,代码如下: for line in `cat filename` do echo ${line}XXYY done 就是每一次循环过程给取出来字符串后面添加...后来发现是因为我文件是才Window下生产Linux下读取这样文件由于换行符不同会导致程序运行不出来正确结果。...解决办法:Linux安装dos2unix小工具,经过该工具转化以后文件再进行读取就没有问题了。

5.4K20

Linux 永久并安全删除文件目录方法

引言 大多数情况下,我们习惯于使用 Delete 键、垃圾箱或 rm 命令从我们计算机删除文件,但这不是永久安全地从硬盘(或任何存储介质)删除文件方法。...本文中,我们将解释一些命令行工具,用于永久并安全地删除 Linux 文件。 1.shred – 覆盖文件来隐藏内容 shred 会覆盖文件来隐藏它内容,并且也可以选择删除它。 ?...在下面的命令,选项有: ? ? 你可以 shred 帮助页中找到更多用法选项信息: ?...2.wipe – Linux 安全删除文件 wipe 命令可以安全地擦除磁盘文件,从而不可能恢复删除文件或目录内容。 首先,你需要安装 wipe 工具,运行以下适当命令: ?...安装完成后,你可以使用 srm 工具 Linux 安全地删除文件目录。 ? 下面是使用选项: ? ? 阅读 srm 手册来获取更多使用选项信息: ?

4.4K50

使用CSV模块PandasPython读取写入CSV文件

CSV文件将在Excel打开,几乎所有数据库都具有允许从CSV文件导入工具。标准格式由列数据定义。此外,每行以换行符终止,以开始下一。同样在行内,每列用逗号分隔。 CSV样本文件。...csv.QUOTE_MINIMAL-引用带有特殊字符字段 csv.QUOTE_NONNUMERIC-引用所有非数字值字段 csv.QUOTE_NONE –输出不引用任何内容 如何读取CSV文件...WindowsLinux终端,您将在命令提示符执行此命令。...仅三代码,您将获得与之前相同结果。熊猫知道CSV第一包含列名,它将自动使用它们。 用Pandas写入CSV文件 使用Pandas写入CSV文件就像阅读一样容易。您可以在这里说服。...结论 因此,现在您知道如何使用方法“ csv”以及以CSV格式读取写入数据。CSV文件易于读取管理,并且尺寸较小,因此相对较快地进行处理传输,因此软件应用程序得到了广泛使用。

19.6K20

iOS解码.txt文件UIWebView出现中文乱码问题

1,什么是gbkutf-8编码? 2,GBK与UTF-8区别? 1,GBK文字编码是双字节来表示,即不论、英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1。...用UIWebview打开txt文件有时候会出现乱码情况,这种情况应该是txt编码问题,解决方案如下: webview打开网页有这三个方法: - (void)loadRequest:(NSURLRequest...,我html文件document目录,链接也是在这个目录上开始 NSURL *baseUrl = [NSURL fileURLWithPath:documentsDir]; 2,MIMEType黑魔法...既文件指定类型。 UTIMIME概念 ? uti.png 同一类型标识符(Uniform Type Identifier,UTI)代表IOS信息共享中心组件。可以把它看成下一代MIME类型。...分带编码不带编码两种,带编码的如UTF-8格式txt,不带编码的如ANSI格式txt

3.2K40

Shell脚本逐行读取文件命令方法

方法一、使用输入重定向 逐行读取文件最简单方法是while循环中使用输入重定向。...- 开始while循环,并在变量“rows”中保存每一内容 - 使用echo显示输出内容,$rows变量为文本文件每行内容 - 使用echo显示输出内容,输出内容包括自定义字符串变量,$rows...- 使用echo显示输出内容,输出内容包括自定义字符串变量,$rows变量为文本文件每行内容 Tips:可以将上面的脚本缩减为一命令,如下: [root@localhost ~]# cat mycontent.txt...,并在变量“rows”中保存每一内容 - 使用echo显示输出内容,$rows变量为文本文件每行内容 - 使用输入重定向<从命令行参数$1读取文件内容 方法四、使用awk命令 通过使用awk命令...,通过单独读取,可以帮助搜索文件字符串。

8.6K21
领券