Python使用csv模块读取并保存文件的类实现
本文介绍了一个基于Python csv模块封装的文件读写类FormatData。该类通过ReadData方法读取文本文件,利用delimiter指定换行符分隔,quotechar处理空格引用,并将非数值转换为float;SaveData方法则将数据列表写入新文件。文章提供了完整的代码示例及D盘操作演示,适用于需要批量处理CSV格式数据的Python开发者。
本文详细介绍了一个用于实现文件读取与保存功能的Python类,供读者参考学习。
该类代码保存在名为class_format.py的文件中,并放置于D盘目录下。
>>> import os
>>> os.chdir("D:\\")
>>> os.getcwd()
'D:\\'
>>> os.listdir(".")
......
测试用的testcsv.txt文件同样位于D盘,其内容如下(注意oi两侧包含空格):
1 100 3000 56 34 23 oi
代码中的ReadData模块调用了csv.reader方法,其中delimiter='\n'指定换行符作为分隔符,quotechar=" "定义空格为引用字符,quoting=csv.QUOTE_NONNUMERIC则指示reader将未引用的区域转换为float类型,而writer会将非数值字段用字符引用包裹。
相关文档参考:https://docs.python.org/3/library/csv.html
该模块的具体使用方式如下:
>>> from class_format import FormatData
>>> myInstance = FormatData()
>>> read_material = myInstance.ReadData("testcsv.txt")
Data read!
>>> read_material
[1.0, 100.0, 3000.0, 56.0, 34.0, 23.0, 'oi']
>>> result = myInstance.SaveData("resultcsv.txt",read_material)
Data saved!
执行后,testcsv.txt中的内容将被成功写入resultcsv.txt文件中。
完整代码如下:
#!/usr/bin/python
""" Chapter 15 of Beginning Programming With Python - For Dummies """
import csv
class FormatData:
def __init__(self, Name="",Age=0, Using_Vim=False):
self.Name = Name
self.Age = Age
self.VimUser = Using_Vim
def __str__(self):
OutString = "'{0}', {1}, {2}".format(self.Name, self.Age, self.VimUser)
return OutString
def SaveData(self, Filename = "", DataList = []):
with open(Filename, "w") as csvfile:
DataWriter = csv.writer(csvfile, delimiter='\n',quotechar=" ",quoting=csv.QUOTE_NONNUMERIC)
DataWriter.writerow(DataList)
csvfile.close()
print("Data saved!")
def ReadData(self,Filename=""):
with open(Filename, "r") as csvfile:
DataReader = csv.reader(csvfile, delimiter='\n',quotechar=" ",quoting=csv.QUOTE_NONNUMERIC)
Output = []
for Item in DataReader:
Output.append(Item[0])
csvfile.close()
print("Data read!")
return Output
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python文本文件操作技巧汇总》、《Python URL操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述的Python程序设计内容能对大家有所帮助。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













