数据生成python脚本

Posted starry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据生成python脚本相关的知识,希望对你有一定的参考价值。

下面是项目结构:

--data 存放数据的文件夹

--main.cpp 题目的正确数据

--prodData.py  生成输入输出数据脚本

--test.cpp    测试代码

--testData.py  测试代码是否正确脚本

 

prodData.py

#-*- coding:utf-8 -*-

‘‘‘
@auther: Starry
@file: prodData.py
@time: 2018/1/17 15:47
‘‘‘

import random
import os

DATASIZE = 10

‘‘‘
每个数据一组数据
‘‘‘
for i in range(DATASIZE):
    print(The %dth set of test data is being produced. % i)
    with open(./data/test+str(i)+.in,w,encoding=utf-8) as f:
        N = random.randint(1, 100000)
        M = random.randint(1, 100000)
        f.write(str(N)+ +str(M)+\n)
        for j in range(M):
            a = random.randint(1,10000)
            b = random.randint(1,10000)
            c = random.randint(1,200)
            f.write(str(a)+ +str(b)+ +str(c)+\n)
    with open(./data/test+str(i)+.out,w,encoding=utf-8) as f:
        pass
    os.system(g++ -std=c++11 main.cpp -o main)
    os.system(main < data\\test+str(i)+.in >> data\\test+str(i)+.out)

‘‘‘
多组数据 0 结束
‘‘‘

# for i in range(DATASIZE):
#     print(‘The %dth set of test data is being produced.‘%i)
#     with open(‘./data/test‘+str(i)+‘.in‘,‘w‘,encoding=‘utf-8‘) as f:
#         while True:
#             N = random.randint(-70,1000)
#             if N <= 0:
#                 f.write(str(0)+‘\n‘)
#                 break
#             f.write(str(N)+‘\n‘)
#             for j in range(N):
#                 a = random.randint(1,50)
#                 f.write(str(a)+‘ ‘)
#             f.write(‘\n‘)
#             M = random.randint(0,1000)
#             f.write(str(M)+‘\n‘)
#     with open(‘./data/test‘+str(i)+‘.out‘,‘w‘,encoding=‘utf-8‘) as f:
#         pass
#     os.system(‘g++ -std=c++11 main.cpp -o main‘)
#     os.system(‘main < data\\test‘+str(i)+‘.in >> data\\test‘+str(i)+‘.out‘)


‘‘‘
多组数据
‘‘‘

# for i in range(DATASIZE):
#     print(‘The %dth set of test data is being produced.‘ % i)
#     with open(‘./data/test‘+str(i)+‘.in‘,‘w‘,encoding=‘utf-8‘) as f:
#         for j in range(random.randint(1,20)):
#             N = random.randint(1, 100)
#             M = random.randint(1, 100)
#             K = random.randint(1, 100)
#             S = random.randint(1, 100)
#             f.write(str(N)+‘ ‘+str(M)+‘ ‘+str(K)+‘ ‘+str(S)+‘\n‘)
#             for k in range(K):
#                 a = random.randint(1,20)
#                 b = random.randint(1,20)
#                 f.write(str(a)+‘ ‘+str(b)+‘\n‘)
#     with open(‘./data/test‘+str(i)+‘.out‘,‘w‘,encoding=‘utf-8‘) as f:
#         pass
#     os.system(‘g++ -std=c++11 main.cpp -o main‘)
#     os.system(‘main < data\\test‘+str(i)+‘.in >> data\\test‘+str(i)+‘.out‘)

 

 

testData.py

#-*- coding:utf-8 -*-

‘‘‘
@auther: Starry
@file: testData.py
@time: 2018/1/17 15:46
‘‘‘

import os

DATASIZE = 10

os.system(g++ test.cpp -o test)
WA = False
for i in range(DATASIZE):
    print(The %dth set of data is being tested.%i)
    os.system(test < data\\test+str(i)+.in > te.out)
    flag = os.system(fc data\\test+str(i)+.out te.out > nul)
    if flag != 0:
        print(Wrong answer on test+str(i)+.in!!!)
        WA = True

if not WA:
    print("Accepted!!!")

 

以上是关于数据生成python脚本的主要内容,如果未能解决你的问题,请参考以下文章

python脚本批量生成数据

Python 脚本生成测试数据,Python生成随机数据,Python生成大量数据保存到文件夹中

使用python脚本,读取excel表格生成erlang数据

Python代码阅读(第40篇):通过两个列表生成字典

30 段 Python 实用代码

使用底图作为Python GUI中的图形