python读写文件操作
python读写文件操作一、csv、xlsx文件csv文件xlsx文件二、文本文件csv到txttxt到txt
一、csv、xlsx文件
csv文件
在pandas库中包含to_csv以及read_csv这样的两个方法,但是它读出来的数据是dataframe类型(这个是一个容易犯错误的地方,总是会因为后续处理时忘记它是dataframe类型),当然你想要获取一些特定的列也可以直接索引访问,下面的代码就是从csv文件获取了文章标题和公众号内容两列。
import pandas as pd
path = 'result.csv'
# 使用pandas读入
data = pd.read_csv(path) #读取文件中所有数据
# 按列分离数据
x=data[['文章标题','公众号文章内容']]
# print(x)
x.to_csv('result1.csv',header=0,index=False)
将dataframe写入csv文件,可以选择是否将索引和列名写入文件,在这里我都是选择的不写入。
当然csv文件也可以使用open方法
xlsx文件
有专门的包里面包含了读写xlsx的方法(import xlrd)
要选择xlsx中的sheet(就是你想要打开的表格在第几个)下面是将xlsx写入csv中
import codecs
import xlrd
import csv
def xlsx_to_csv():
workbook = xlrd.open_workbook('样例数据V1.1.6(1).xlsx')
table = workbook.sheet_by_index(4)
with codecs.open('result.csv', 'w', encoding='utf-8') as f:
write = csv.writer(f)
for row_num in range(table.nrows):
row_value = table.row_values(row_num)
write.writerow(row_value)
if __name__ == '__main__':
xlsx_to_csv()
二、文本文件
csv到txt
这里如果是中文,最好写上encoding=‘utf-8’
data=open('result1.csv','r',encoding='utf-8')
with open('result.txt', 'w', encoding='utf-8') as f:
lines=data.readlines()
for line in lines:
line.replace('\n','')#换掉换行
f.write(line)
如果你想要读取文件特定多少行,可以在lines=data.readlines()后面加一个[n:m]就是第n行到第m-
1行
f=open('test.txt','r',encoding='UTF-8')
with open('train.txt','w',encoding='UTF-8') as file:
lines=f.readlines()[20000:]
for line in lines:
file.write(line)
f.close()
txt到txt
这里有一个很有意思的东西,就是同时打开两个文件交替的写入一个文件(这个是有一天我想把两个文件数据合并,然后csdn找到的代码)
#创建一个result.txt文件,写入数据
with open(r'test.txt',"w",encoding="UTF-8") as re:
with open(r"test_shuju.txt","r",encoding="UTF-8") as f1, open(r'train.txt',"r",encoding="UTF-8")as f2:
while True:
lines1 = f1.readline()
lines2 = f2.readline()
if lines1 or lines2:
if lines1:
re.write(lines1)
if lines2:
re.write(lines2)
else:
break
如果你想在已有的文件后面继续添加就把open里面的‘w’变成‘a’。
这些是我平时用python读文件碰到的就整理了一下,仅供参考。