文件(txt/json/csv)读写
写入csv
import csv
withopen( 'some.csv', 'w', encoding="UTF-8", newline= '') as f:
writer = csv.writer(f)
# writer.writerow(), 将多列数据写入一行
writer.writerow([ "123", "234", "345"])
writer.writerow([ "abc", "efg", "hij"])
# writer.writerows(), 将一个二维列表中的每一个列表写为一行。
writer.writerows([[1, 2],[3, 4],[4, 5]])
'''
writer.writerows() 结果如下:
[[1, 2],
[3, 4],
[4, 5]]
'''
读写txt
# with方式可以避免没有关闭资源文件产生错误
# 读
# read(),一次读取全部内容到[内存](https://so.csdn.net/so/search?q=内存&spm=1001.2101.3001.7020)。
with open('file.txt', 'r') as f:
print(f.read())
# 2、readlines(),with方式,逐行读取。
with open("file.txt", 'r') as lines:
for line in lines:
print(line)
#写
with open("file.txt", 'w') as f:
f.write('测试')
# 其他方法 open()
# 打开文件
f = open("file.txt", "r")
print ("文件名为: ", f.name)
for line in fo.readlines(): #依次读取每行
line = line.strip() #去掉每行头尾空白
print ("读取的数据为: %s" % (line))
# 关闭文件
f.close()
json
https://blog.csdn.net/qq_41422774/article/details/97394651
# 1
with open('抽取输出1.json', 'w') as file_obj:
json.dump(results, file_obj, ensure_ascii=False)
# 2
with open("index2request_data.json", "w") as f:
f.write(json.dumps(index2request_data, ensure_ascii=False, indent=4, separators=(',', ':')))
# 字典转码
res = json.loads(json.dumps(res, ensure_ascii=False))
# 读取json文件
with open("index2request_data.json", "w") as f:
res = json.loads(f.read())
# 不推荐
res = json.loads(open('ner.json', 'r').read())
- Python 3已经将unicode作为默认编码
- Python 3中的json在做dumps操作时,会将中文转换成unicode编码,并以16进制方式存储,再做逆向操作时,会将unicode编码转换回中文, 但在做逆向操作load和loads时会转换为中文,但是中间态(例如存储的json文件)的中文编码方式仍然是unicode
- 这就解释了,为什么json.dumps操作后,得到的字符串是\uXXXX。