QFile文件读写

  1. //main.cpp  
  2. #include <QtCore/QCoreApplication>  
  3. #include <QFile>  
  4. #include <QDebug>  
  5. int main(int argc, char *argv[])  
  6. {  
  7.     QCoreApplication app(argc, argv);  
  8.     QFile *file = new QFile();  
  9.     //task1 写入文件  
  10.     file->setFileName("/other/test/gw");  
  11.     file->open(QIODevice::WriteOnly | QIODevice::Text);  
  12.     file->reset();  
  13.     file->write("just have a test!/nhello!");  
  14.     file->close();  
  15.     QFile *file2 = new QFile();  
  16.     file2->setFileName("/other/test/gw");  
  17.     file2->open(QIODevice::ReadOnly | QIODevice::Text);  
  18.     file2->reset();  
  19.     QString str;  
  20.     //task2 每次读取100个  
  21.     qDebug() << "task2" << endl;  
  22.     while (!file2->atEnd())  
  23.     {  
  24.         str = file2->read(100);  
  25.         qDebug() << str;  
  26.     }  
  27.     file2->reset();  
  28.   
  29.     //task3 每次读取一行  
  30.     qDebug() << "task3" << endl;  
  31.     while (!file2->atEnd())  
  32.     {  
  33.         str = file2->readLine(0);  
  34.         qDebug() << file2->pos();  
  35.         qDebug() << str;  
  36.     }  
  37.     file2->close();  
  38.     file->deleteLater();  
  39.   
  40.     QObject::connect(file,SIGNAL(destroyed()),file2,SLOT(deleteLater()));  
  41.     QObject::connect(file2,SIGNAL(destroyed()),&app,SLOT(quit()));  
  42.     return app.exec();  
  43. }  
### 使用 `qfile` 进行 CSV 文件读写操作 #### 读取 CSV 文件并处理数据 为了实现从名为 `qfile.csv` 的文件中读取数据,并将其转换为相应的 Python 变量,可以采用如下方法: 对于较大的CSV文件,逐行读取是一个更优的选择。这不仅节省内存资源,而且提高了程序运行效率[^2]。 ```python import csv with open('qfile.csv', 'r', newline='', encoding='utf-8') as csvfile: reader = csv.DictReader(csvfile) for row in reader: print(row) # 输出每一行的数据作为字典形式展示 ``` 上述代码片段展示了如何通过Python内置库`csv`来解析CSV文档中的内容。这里使用了`DictReader`类以便于获取每列对应的值,而无需关心具体位置。 #### 将变量保存到新的 CSV 文件 当需要将某些计算后的结果或者其他类型的结构化数据存储回CSV格式时,则可以通过以下方式完成: 为了避免因文件被占用而导致的操作失败问题,在确保每次只打开一个文件句柄的同时也要尽快关闭它[^3]。 ```python data_to_save = [ {'name': 'Alice', 'age': 24}, {'name': 'Bob', 'age': 30} ] fieldnames = ['name', 'age'] with open('output_qfile.csv', 'w', newline='', encoding='utf-8') as csvfile: writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() for item in data_to_save: writer.writerow(item) ``` 这段脚本创建了一个新文件`output_qfile.csv`用于保存列表内各条记录的信息;其中包含了字段名定义以及实际数据项两部分。 #### 处理大尺寸文件的情况 考虑到可能遇到非常庞大的输入源,应该采取更加谨慎的方式来进行I/O操作——即分批次加载而不是一次性全部载入内存之中。这样做的好处是可以有效防止由于过度消耗RAM空间所引发的各种潜在风险[^1]。 ```python chunksize = 10 ** 6 # 定义批量大小 for chunk in pd.read_csv('large_qfile.csv', chunksize=chunksize): process(chunk) # 对每个子集执行特定逻辑函数process() ``` 此段示例利用Pandas库实现了按块读取大型CSV的功能,从而降低了对计算机硬件的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值