代码改变世界

python文件操作

2020-02-26 14:28  默默不语  阅读(211)  评论(0编辑  收藏  举报

1.打开文件()

#参数1为文件路径
#参数2为打开方式
f = open('D:\spider\\shoesItem.txt','w')

2.向文件写入内容(参数必须为字符串)

f.write(content)

3.关闭文件流

f.close()

4.向文件写入内容时,每次换行输入

f = open('D:\spider\\action.txt','w')
f.write('1')
f.write('2')
f.close()

换行输入:

f = open('D:\spider\\action.txt','w')
f.write('1')
f.write('\n')
f.write('2')
f.close()

3.向文件中写入内容时不覆盖之前内容,即在文件末尾写入内容。(由上面的例子我们可以看到当程序再次运行时,之前文件中的内容就被覆盖了)

解决办法:将文件打开方式改为‘a’

#在例2之后运行
f = open('D:\spider\\action.txt','a')
f.write('1')
f.write('\n')
f.write('2')
f.close()

4.python向文件中写入数据时,文件中的文字全为乱码。

shoesItem.txt中:

 

解决方法:打开文件时设置编码方式为UTF-8

id = 1
f = open('D:\spider\\shoesItem.txt','a',encoding='utf-8')
coon = pymysql.connect(user='root', password='root', host='127.0.0.1', port=3306, database='bishe_shoes',use_unicode=True, charset="utf8")
cursor = coon.cursor()
while id <= 139360:
    line = ""
    cursor.execute("select * from shoes where id = {}".format(id))
    shoes = cursor.fetchall()[0]
    print(shoes)
    line = str(shoes[0]) + '|' + shoes[1] + '|'+ str(shoes[2]) + '|' + shoes[3] + '|' + shoes[4] + '|'+ shoes[5] + '|' + shoes[6] + '|' + shoes[7]
    print(line)
    f.write(line)
    f.write('\n')
    id = id + 1
f.close()

shoesItem.txt中: