为了账号安全,请及时绑定邮箱和手机立即绑定

在多个文本文件中用逗号替换十进制

在多个文本文件中用逗号替换十进制

小怪兽爱吃肉 2021-08-24 15:26:15
我在一个文件夹中有 10 个 TAB 分隔的 txt 文件。它有三列(只有数字),前面有 21 行标题(文本和数字)。为了进一步处理它们,我想:从所有文本文件中选择第二列(从 21 行标题之后开始;我附上带有箭头的图),将逗号转换为十进制并将 10 个文件中的每一列堆叠到一个新的制表符分隔/csv 文件中。一旦所有文件。我知道很少的脚本。我有 Rstudio 和 Python,并试图摆弄一下。但我真的不知道该怎么做。由于我必须处理多个文件夹,如果可能的话,我的工作会真正简化。
查看完整描述

3 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

根据您的要求,听起来这个 Python 代码应该可以解决问题:


import os

import glob


DIR = "path/to/your/directory"

OUTPUT_FILE = "path/to/your/output.csv"

HEADER_SIZE = 21


input_files = glob.glob(os.path.join(DIR, "*.txt"))


for input_file in input_files:

    print("Now processing", input_file)


    # read the file

    with open(input_file, "r") as h:

        contents = h.readlines()


    # drop header

    contents = contents[HEADER_SIZE:]


    # grab the 2nd column

    column = []

    for row in contents:

        # stop at the footer

        if "####" in row:

            break


        split = row.split("\t")


        if len(split) >= 2:

            column.append(split[1])


    # replace the comma

    column_replaced = [row.replace(",", ".") for row in column]


    # append to the output file

    with open(OUTPUT_FILE, "a") as h:

        h.write("\n".join(column_replaced))

        h.write("\n")  # end on a newline

请注意,这将丢弃不属于输出文件第二列的所有内容。


查看完整回答
反对 回复 2021-08-24
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

list =[]

filename = "my_text"

file = open(filename, "r")

for line in file:

    res=line.replace(",", ".")

    list.append(res)

    print(res)


f = open(filename, "w")

for item in list:

    f.write(item)`enter code here`


查看完整回答
反对 回复 2021-08-24
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

下面的代码不是一个精确的解决方案,但如果你按照它的思路去做,你将接近你所需要的。


output <- "NewFileName.txt"


old_dir <- setwd("your/folder")

files <- list.files("\\.txt")

df_list <- lapply(files, read.table, skip = 21, sep = "\t")

x <- lapply(df_list, '[[', 2)

x <- gsub(",", ".", unlist(x))

write.table(x, output, row.names = FALSE, col.names = FALSE)

setwd(old_dir)


查看完整回答
反对 回复 2021-08-24
  • 3 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信