gpt4 book ai didi

file - 创建文件后如何写入文本文件

转载 作者:行者123 更新时间:2023-12-01 12:09:04 24 4
gpt4 key购买 nike

这是我第一次在这里写作。我是 f# 的新手,想获得一些帮助。我制作了一个程序,它应该从现有的文本文件中取出单词,对其进行编辑并将其写入新的文本文件中,按最频繁出现的单词的顺序排列。我做了最多,但是当文本文件出现时,但里面说:

System.Tuple`2[System.String,System.Int32][]

这是我的代码:

let reg = RegularExpressions.Regex "\s+" 
let cleanEx = RegularExpressions.Regex "[\,\.\!\"\:\;\?\-]"
let read = (File.OpenText "clep.txt").ReadToEnd()
let clen = (cleanEx.Replace(read, "")).ToLower()

let clean = reg.Split(clen)
let finAr = Array.countBy id clean
let finlist = Array.sortByDescending (fun (_, count) -> count) finAr
// printfn "%A" finlist


let string = finlist.ToString()
let writer = File.AppendText("descend.txt")
writer.WriteLine(finlist);
writer.Close();

最佳答案

你为什么看到?

System.Tuple`2[System.String,System.Int32][]

因为 finAr 是元组数组 (string*int)finlist 是相同项目的数组,但按计数排序。当您执行 finlist.ToString() 时,它不会为您提供数组项的字符串表示形式。 ToString() 默认情况下(如果未被覆盖)返回对象类型的全名。在您的案例中,这是元组数组。

现在,您需要按照频率顺序编写一个单词文件吗?只是将数组项映射到字符串:

let lines =
clean
|> Array.countBy id // finAr
|> Array.sortByDescending (fun (_,count) -> count) // finlist
|> Array.map (fun (word, _) -> word) // here mapping each tuple to string

File.WriteAllLines("descent.txt", lines)

通过几个包装器,您可以通过管道传输与读取文件和写入文件相关的操作:

"clep.txt"
|> readTextFile
|> getWordsMostFrequestFirst
|> writeLinesToFile "descent.txt"

包装器:

let readTextFile (path: string) =
(File.OpenText path).ReadToEnd()

let writeLinesToFile (path: string) (contents: string seq) =
File.WriteAllLines(path, contents)

还有一个处理文本的函数:

let getWordsMostFrequestFirst (text: string) =
let splitByWhitespaces (input: string) = Regex.Split(input, "\s+")
let toLower (input: string) = input.ToLower()
let removeDelimiters (input: string) = Regex.Replace(input, "[\,\.\!\"\:\;\?\-]", "")

text
|> removeDelimiters
|> toLower
|> splitByWhitespaces
|> Array.countBy id
|> Array.sortByDescending snd // easy way to get tuple items
|> Array.map fst

关于file - 创建文件后如何写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53821730/

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