如何修复代码以使其自动化?

2024-09-30 22:15:47 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码将标准化的.txt文件转换为JSON文件。唯一的问题是,有时我有300多个文件,并手动执行此操作(即更改文件末尾的编号并运行脚本太多且耗时太长。我希望自动执行此操作。您可以看到,这些文件位于一个folder/directory and I am placing the JSON file in a different文件夹/目录,但基本上保持命名约定的标准化,除了以.txt结尾之外,它以.json结尾,但前缀或文件名相同且标准化。例如:CRAZY_CAT_FINAL1.TXT, CRAZY_CAT_FINAL2.TXT诸如此类,一直到文件300。我如何能够自动执行并保持文件命名约定,并将文件读取和输出到不同的文件夹/目录?我已经尝试过,但似乎无法使其重复。任何帮助都将不胜感激

import glob
import time
from glob import glob
import pandas as pd
import numpy as np
import csv
import json

    csvfile = open(r'C:\Users\...\...\...\Dog\CRAZY_CAT_FINAL1.txt', 'r')
    jsonfile = open(r'C:\Users\...\...\...\Rat\CRAZY_CAT_FINAL1.json', 'w')
    
    reader = csv.DictReader(csvfile)
    out = json.dumps([row for row in reader])
    jsonfile.write(out)

****************************************************************************
I also have this code using the python library "requests". How do I make this code so that it uploads multiple json files with a standard naming convention? The files end with a number...

    import requests

#function to post to api

    def postData(xactData):
        url = 'http link'
        headers = {
           'Content-Type': 'application/json',
           'Content-Length': str(len(xactData)),
           'Request-Timeout': '60000'
        }
        return requests.post(url, headers=headers, data=xactData)

    #read data
    f = (r'filepath/file/file.json', 'r')
    data = f.read()
    print(data)

    # post data
    result = postData(data)
    print(result)

Tags: 文件importtxtjsondatapostrequestsglob
2条回答
import time
from glob import glob
import csv
import json
import os

INPATH r'C:\Users\...\...\...\Dog'
OUTPATH = r'C:\Users\...\...\...\Rat'
for csvname in glob(INPATH+'\*.txt'):
    jsonname = OUTPATH + '/' + os.basename(csvname[:-3] + 'json')
    reader = csv.DictReader(open(csvname,'r'))
    json.dump( list(reader), open(jsonname,'w') )

使用f-strings

for i in range(1,301):
    csvfile = open(f'C:\Users\...\...\...\Dog\CRAZY_CAT_FINAL{i}.txt', 'r')
    jsonfile = open(f'C:\Users\...\...\...\Rat\CRAZY_CAT_FINAL{i}.json', 'w')

相关问题 更多 >