目录
- 一.从文件中读取数据
- 1.1读取整个文件
- 1.2文件路劲
- 1.3逐行读取
- 二.写入文件
一.从文件中读取数据
各位小伙伴,文件这一块得好好学,多看多敲代码,以后处理数据,写爬虫少不了这个,先从基础(简单的)抓起,会用,然后在拓展延伸。
1.1读取整个文件
新建一个文本文件,在当前文件的根目录下,如下图所示:
该文件存储的是部分圆周率pi,部分内容如下:
3.141592653589793238462643383279
讲解放在代码的注释,可以边看代码边对应注释进行参考:
with open('pi.txt') as file_object:contents = file_object.read()
print(contents)
# 关键字with在文件不需要访问时自动关闭文件避免数据的丢失
# 函数open(),括号内部接受的是打开文件的路径。(python是在当前文件所在的目录中查找,就是和它同级目录),(默认只读)
# as file_object也就是这个文件对象(file_object)
# read()读取文件对象的值
# 注意使用read()读取到达文件末尾时返回一个空字符串,若想避免则可以调用rstrip()函数(contente.rstrip())
ps:补充个知识,就是文件都必须先打开在编辑,然后在关闭。
1.2文件路劲
路径有绝对路径和相对路径之分。
绝对路径:文件在计算机的准确位置。(c:/桌面/xxxx/xxxx)
相对位置:在当前文件的根目录。(xxx/xxx)
- ps:pycharm中文件右击文件会出现相对与绝对路径。
- ps:python文件使用‘/’。
- ps:windows文件使用‘\’。
- ps:python文件路径要么使用‘/’,要么使用‘\ \’。(\通常和转义字符相关,\ \对每个斜杠进行转义)
1.3逐行读取
#open('pi.txt')
#open('D:/Users/15204/Desktop/BingImageSpider-main/pi.txt')
with open('D:\\Users\\15204\\Desktop\\BingImageSpider-main\\pi.txt') as file_object:for line in file_object: #for循环,在文件中逐行读取内容print(line)
运行结果:
说明:
因为每一行文件本身存在一个换行符,print()函数存在一个换行符,因此打印的结果间距变大,若想避免,则继续使用rstrip函数即可。
二.写入文件
读取文件,相对应的就是写入文件,看下例:
with open('hobby','w') as file_object: # open调用两个实参,第一个文件名(路径就是该文件的同级目录,所以不说路径),第二个是以什么方式打开,w是写入(write)file_object.write("I love one person,but it's a pity.")
运行程序以后:
ps:python只能将字符串写入文本文件,那也就是问什么创建的hobby文件类型是.txt。如果你想存储数据的话,必须使用函数str()转换为字符串格式。
'w':write,写入文件,如果没有的话创建文件,如果有这个文件的话,文件内容将被清空在写入,若想避免可以使用'a'
'r':read,读取模式,字面意思
'a':add,附加模式,在原先基础添加
'r+':读写模式,字面意思
ps:若想写入多行数据,可以重复调用语句:
file_object.write("xxxxxx")# 注意此时写入是紧跟在文件末尾写入的(你可以使用换行符\n进行换行逐行输入)
ps:目前为止,博客写到这,python的基础语法就全部写完啦(建议先学c语言,有c基础的话(有时间会出个c系列),python语法最快一周左右就能掌握个差不多,能看懂别人代码)。博主因为要开学了,后面有时间会更新一些处理python异常,爬虫(在学习),GUI,以及一些数据的处理等等。
ps:博主水平有限,有问题欢迎大家指出,大家一起学习,一起进步!
ps:因为时间紧凑,所以博主写这些文章就是抓最基本的知识点,其它的可以举一反三。
ps:学完最基础的知识点,就可以着手做一些简单的项目,在项目中锻炼自己的编程能力,加油兄弟们!