You need to enable JavaScript to run this app. Python转换JsonL为CSV文件时报PermissionError 13权限错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Python转换JsonL为CSV文件时报PermissionError 13权限错误如何解决

报错触发原因

你遇到的PermissionError最核心的触发原因是代码中open()函数传入的路径是文件夹路径C:\Users\Natthanon\Documents\Coding 101\Python\CSV,而非具体的CSV文件路径。系统无法直接将内容写入文件夹,因此抛出了权限类报错,并非你的账号真的没有该目录的访问权限。
少数情况下如果路径正确仍报该错误,才是真的权限问题:比如目标文件夹被设为只读、Visual Studio Code没有对应目录的读写权限。

可行解决方案

按优先级排序的处理方案如下:

  • 第一步修正写入路径:将open函数的第一个参数改为具体的CSV文件路径,比如你要输出到output.csv,就修改为r'C:\Users\Natthanon\Documents\Coding 101\Python\CSV\output.csv'。修改前先确认C:\Users\Natthanon\Documents\Coding 101\Python\CSV文件夹已经存在,不存在可以手动新建,也可以在代码开头加逻辑自动创建。
  • 第二步优化代码逻辑:你当前的代码每读取一行JSONL内容就打开/关闭一次CSV文件,性能极低,建议将CSV文件的打开逻辑移到循环外层,避免重复IO操作,同时也修正了原代码中循环变量和文件对象重名的问题。
  • 第三步权限兼容处理:如果修正路径后仍报权限错误,可以右键点击Visual Studio Code图标,选择「以管理员身份运行」后再执行脚本;也可以将CSV输出路径修改为桌面等无特殊权限限制的目录。
修正后参考代码
import glob
import json
import csv
import os
import time

start = time.time()
from flatten_json import flatten

# 配置路径
File_path = r'C:\Users\Natthanon\Documents\Coding 101\Python\JSONL'
# 自动确保CSV输出文件夹存在
csv_folder = r'C:\Users\Natthanon\Documents\Coding 101\Python\CSV'
os.makedirs(csv_folder, exist_ok=True)
csv_output_path = os.path.join(csv_folder, 'output.csv')

# 读取所有jsonl文件
files = [f for f in glob.glob(os.path.join(File_path, "**/*.jsonl"), recursive=True)]

# 全局只打开一次CSV文件,提升性能
with open(csv_output_path, 'a' , newline='', encoding='utf-8') as f:
    thewriter = csv.writer(f)
    # 如果需要写入表头可取消下一行注释
    # thewriter.writerow(['header1', 'header2'])
    for f_jsonl in files:
        with open(f_jsonl, 'r', encoding='utf-8') as F:
            for line in F:
                data = json.loads(line)
                data_1 = flatten(data)
                thewriter.writerow([data_1['header1'],data_1['header2']])

内容的提问来源于stack exchange,提问作者honnielemons

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 20:15:06