1. 文件的访问模式:
首先看一下文件的访问方式
访问模式 | 说明 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
w | 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
w+ | 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
下面说一下,一些常见文件的打开方式
2. csv文件
- pandas读写
import pandas as pd
#读取
df = pd.read_csv("ori.csv")
#写入
df.to_csv("save.csv")
- csv读写
import csv
csvFIle = open('ori.csv', encoding="utf-8","r")
#读
lines = csv.reader(csvFIle)#返回是一个迭代类型,需要通过循环或迭代器访问
for line in lines:
print(line)
csvFIle.close()#记关上
#写
f = open("save.csv","w",newline='')
writer = csv.writer(f)
##先单行写入columns_name
writer.writerow(["id","name","age"])
##写入多行用writerows
writer.writerows([[0,"wang",18],[1,"zhao",20],[2,"zhou",23]])
f.close()
- newline(换行标志:一般是 None,’\n’,’\r’ 或者’\r\n’)建议加上,如果不加的话,每行数据之间会有一行空格.
- 其他方式读写csv
#打开文件乱码时,可尝试换个编码方式
with open("ori.csv",encoding = "utf-8-sig") as f:
lines = f.readlines()#返回列表,包含所有的行
print(lines)
for line in lines:
#单行
print(line)
3. txt文件
读取文件并进行单词统计
text文件中的数据样例:
Namun CC
aparat NN
yang PRL
berjaga VB
langsung RB
sigap NN
dan CC
…等等
#读
from collections import Counter
File = open("Ind_train.txt",encoding="utf-8")
ori_data = File.readlines()
File.close()
#按行写入
for i in ori_data:
with open('save.txt', 'a') as f:
f.write(i+"\n")#换行