python小记(4) | 一些快捷的文件操作(读取文件夹中所有文件名、读取json数据保存至txt文件)

不说废话(其实是不会说 )直接上操作

  1. 读取文件夹中所有文件名
    参考的是网上txt转bat文件运行方式:
    在需要读取文件夹所有文件名的文件夹下,新建txt2bat.txt文件,写入dir>filename.txt
    txt2bat.txt文件后缀转换为.bat,双击运行,即可获得一个filename.txt文件,该文件夹所有文件名,格式一般为:创建时间 文件大小 文件名称(含后缀)

  2. 读取json数据保存至txt文件
    因为我的数据可能需要保密,这里大致展示一下json文件结构:

{"Id":xxx,"Filename":xxx,"Label":[a,b,c,d]}

每个json文件非常简单,总数有几百个,我的目标是获取Filename和对应标签,存入txt文件:

# 读取json文件关键内容至txt文件中,但是缺少判断是否为json文件
import json
import os
def readjson():
    path = 'F:\\xxx\\json' # 文件夹位置
    files = os.listdir(path)
    label_txt = open('F:\\xxx\\json\\label_txt.txt',mode='w')
    for file in files:
        f = open(path + '\\'+file,mode='r',encoding='utf-8')
        temp = json.loads(f.read())
        for i in temp: 
            if temp["Label"]: # 判断Label是否为空值
                Labels = ' '.join(temp["Label"])
            else:
                Labels = "Null"
        str = temp["Filename"] + ';' + Labels # 写入txt文件
        label_txt.writelines(str + '\n')
        print(str) # 打印提取的数据
    label_txt.close()
    
if __name__ == '__main__':
    readjson()

我这里直接复制了打印的数据,然后将两部分数据合并贴进excel,使用数据-分列的功能,就可以很方便地拆分表格合并汇总的(给自己点个赞👍)!

  1. 一些报错问题记录(部分网页被我叉掉了,所以部分报错提示没存)
    ’gbk’ codec can’t decode byte 0xbb in position 117: illegal multibyte sequence
    编解码方式有问题,在open()里添加encoding = ‘utf-8’
    can only concatenate str (not “list”) to str
    一开始我直接将Filename标签和Label标签拼接,但是Label标签本身是一个列表,应该先转换为字符串再拼接Filename标签内容。
    can only join an iterable
    Label标签中存在空值,不能使用.join(),判断然后自定义输出值
    ’utf-8’ codec can’t decode byte 0xc8 in position 32: invalid continuation byte
    'utf-8’编解码器无法解码位置0的字节0xc8:无效的连续字节
    网上说是更改为gbk编码,但这样又回到了第一个问题,所以目前还没有解决,希望集思广益。
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Python的os模块提供了访问文件和目录的函数,可以使用该模块读取指定文件夹中所有txt文件,并使用pandas将其保存到同一个Excel文件中。具体步骤如下: 1. 导入必要模块 ``` python import os import pandas as pd ``` 2. 定义读取文件夹的函数 ``` python def get_all_txt_files(folder_path): file_list = [] for file_name in os.listdir(folder_path): if file_name.endswith('.txt'): file_list.append(os.path.join(folder_path, file_name)) return file_list ``` 该函数将会把一个文件夹中所有的txt文件的路径装到一个列表中,并返回该列表。 3. 遍历文件夹并处理txt文件 ``` python folder_path = 'txt_files_folder' files = get_all_txt_files(folder_path) # 读取txt文件的内容并将其实例化为一个Dataframe df_list = [pd.read_csv(file) for file in files] # 合并Dataframe到一个Excel文件 with pd.ExcelWriter('all_txt_files.xlsx') as writer: for i, df in enumerate(df_list): df.to_excel(writer, sheet_name='Sheet'+str(i)) ``` 该代码将会遍历指定的txt文件夹,并使用pandas的read_csv函数将每个txt文件的内容读取为一个Dataframe对象,同时,使用ExcelWriter函数创建Excel文件,并使用to_excel函数将所有的Dataframe合并到同一个Excel中。最后,使用with语句关闭ExcelWriter函数。 总的来说,使用Python操作文件和目录变得非常容易,只需要使用os模块中提供的函数即可快速完成。同时,借助pandas等数据处理库也可以轻松地处理各种文件格式,并将其保存到任何我们想要的格式中。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月婵婵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值