Python大作业:Grid_solar_EV_data.txt的操作

#Grid_solar_EV_data.txt文件保存了NY,Austin,Boulder三个城市的电网,太阳能以及电动汽车数据,编程实现将文件按NY,Austin,Boulder
#三个城市划分,将数据划分成三个文件,并以txt文件格式存储,其中分割后文件中的数据顺序,结构和表头与源文件一致,且每个文件的第一列为
#Datetime列,NY数据保存为1.txt,Austin数据保存为2.txt,Boulder数据保存为3.txt。

#1 读取数据
f = open("Grid_solar_EV_data.txt",'r')
rows = []
for lines in f.readlines():#读取每一行数据
    lines = lines.split('\t')#拆分
    rows.append(lines)
f.close()

#2 提取数据
NY = []
Austin = []
Boulder = []
[NY.append(row[:4]) for row in rows]#前四列为NY数据
[Austin.append(row[0:1]+row[4:7]) for row in rows]#五到七列为Austin数据
[Boulder.append(row[0:1]+row[7:]) for row in rows]#八到十列为Boulder数据

#3 保存数据
with open('1.txt','a+') as txtFile:
    #依次添加每一行的数据
    for i in NY:
        for j in i:
            txtFile.writelines(j)
            txtFile.writelines(' ')#分割符
        txtFile.writelines('\n')#换行

with open('2.txt','a+') as txtFile:
    #依次添加每一行的数据
    for i in Austin:
        for j in i:
            txtFile.writelines(j)
            txtFile.writelines(' ')#分割符
        txtFile.writelines('\n')#换行

with open('3.txt','a+') as txtFile:
    #依次添加每一行的数据
    for i in Boulder:
        for j in i:
            txtFile.writelines(j)
            txtFile.writelines(' ')#分割符
        txtFile.writelines('\n')#换行

原数据:Grid_solar_EV_data.txt文件

链接:https://pan.baidu.com/s/1S02i-kbkTvaBcsOlSTDg1w 
提取码:vmb9 
 

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
这个接口返回的dec_data是一个Python字典类型,如果你要在C++中读取它,需要将它转换为C++的数据类型。你可以使用一些第三方库,例如Boost.Python或Pybind11来实现Python和C++之间的数据转换。具体地,你可以按照以下步骤进行操作: 1. 在C++中引入第三方库,例如Pybind11。 2. 在C++中定义一个函数,该函数接受一个Python字典类型作为输入参数,并将其转换为C++的数据类型。 3. 在C++中调用该函数,并将接口返回的dec_data作为输入参数传递给它。 4. 在C++中使用转换后的数据类型进行后续处理。 下面是一个使用Pybind11实现Python和C++之间数据转换的例子: ```c++ #include <pybind11/pybind11.h> #include <pybind11/stl.h> namespace py = pybind11; // 定义一个函数,将Python字典类型转换为C++的std::map类型 std::map<std::string, py::object> dict_to_map(py::dict d) { std::map<std::string, py::object> m; for (auto item : d) { m[item.first.cast<std::string>()] = item.second; } return m; } // 在C++中调用Python函数,并将接口返回的dec_data作为输入参数传递给它 int main() { py::scoped_interpreter guard{}; // 初始化Python解释器 py::module sys = py::module::import("sys"); sys.attr("path").attr("append")("../path/to/your/python/script"); // 添加Python脚本路径 py::module module = py::module::import("your_python_module"); // 加载Python模块 py::object func = module.attr("getMsgFromID"); // 获取Python函数 py::tuple result = func(_id); // 调用Python函数,并将接口返回的dec_data作为输入参数传递给它 py::dict dec_data = result[0].cast<py::dict>(); // 获取Python函数返回值 // 将Python字典类型转换为C++的std::map类型 std::map<std::string, py::object> m = dict_to_map(dec_data); // 在C++中使用转换后的数据类型进行后续处理 // ... return 0; } ``` 需要注意的是,上述代码仅供参考,具体实现方式可能因项目环境、具体需求等因素而异。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值