文件下的所有文本内容转为一个csv文件代码

在数据测试时,需要把一个文件下的无数个txt一个一个的转为csv文件中一个单元格的元素,如果手动转所需工作量太大,所以选择用代码来解决。

因为我做这个文件转换时 文件名是下面这种类型:

首先批量修改文件名我需要将这些文本文件的数据排序输入csv文件中,所以我先把_后面的数字去掉,但我发现它排序是用string来排序的,这样排序结果回事1,10,100,1000.....和我所要求的不同,所以在不满五位数之前添0,变为00001,00002....即可。

改变后的文件名。

import os
pos_name = os.listdir('neg')
for temp in pos_name:
    i,j = temp.split('_')
    if len(i) < 5:
         num = 5 - len(i)
         i = num * '0' + i
    new_name = i+'.txt'
    print(new_name)
    os.rename('neg/'+temp,'neg/'+new_name)

接下来把文件读入并写入。

wr()函数是用来将数据写入csv的,mode=‘a+’就是往csv中添加元素。header是指定列名。

import pandas as pd
import os
import codecs
def wr(path):
    data=codecs.open(path,encoding='utf-8')
    data2 = pd.DataFrame(data)
    data2.to_csv('test.csv', index=False, mode='a+', header=False)
    data.close()

path1 = 'pos'  # 指定需要读取文件的目录
files = os.listdir(path1)  # 采用listdir来读取所有文件
files.sort()  # 排序
for file_ in files:  # 循环读取每个文件名
    if not os.path.isdir(path1 + file_):  # 判断该文件是否是一个文件夹
        f_name = str(file_)
        path = r'pos\{0}'.format(f_name)
        print(path)
        wr(path)

这样就能的到想要的csv文件了,但是在csv中查看时会出现编码错误,我暂时没有找到解决办法,不过在PyCharm中并没有出错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值