前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python文件处理

Python文件处理

作者头像
刘开心_1266679
发布2019-02-14 15:21:29
6810
发布2019-02-14 15:21:29
举报

文件读取


整个读取

代码语言:javascript
复制
with open('pi_digits.txt') as file_object:

contents = file_object.read()

print(contents)

两个注意点:

  • 使用关键字with可以自动关闭文件流,如果使用file_object = open('pi_digits.txt')这种方式则需要手动关闭文件流,手动关闭带来的问题就是假设程序在过程中存在bug,导致close()语句未执行,文件将不会关闭,就会带来数据丢失或损失的问题,所以这是推荐写法。
  • open的参数可以写相对路径,也可以写绝对路径,在Mac种使用“/”分隔;在windows种使用“\”分隔,另外,由于反斜杠在Python中被视为转义,为在windows种万无一失可以用原始字符串的方式指定路径,即在开头的单引号前加上r。(没用过此方式,不如出了问题再用)
  • read()到达文件末尾时会返回一个空串,显示出来就是空行,想删除该空行,可以使用rstrip()函数,print(file_object.read().rstrip())

逐行读取

代码语言:javascript
复制
filename = 'pi_digits.txt'

with open(filename) as file_object:

for line in file_object:

print(line)
  • 将文件名存在filename中,就可以方便替换文件名,而不用动下面的代码
  • 在打印结果中会发现每一行下面都有一个空白行,因为print语句会加上一个换行符,要消除这些空白行,可在print语句中使用rstrip():print(line.rstrip())

将文件内容读取到内存中

存储到列表中
代码语言:javascript
复制
filename = 'pi_digits.txt'

with open(filename) as file_object:

lines = file_object.readlines()

for line in lines:

print(line.rstrip)
存储到字符串中
代码语言:javascript
复制
filename = 'pi_digits.txt'

with open(filename) as file_object:

lines = file_object.readlines()

pi_string= ''

for line in lines:

pi_stirng += line.strip()

print(pi_string)

print(len(pi_string))

注意点:

  • 删除空格使用strip()函数,删除空行使用rstrip()函数
  • 对于可以处理的数据量,Python没有任何限制,只要系统的内存足够多,想处理多少数据都可以

判断文件中是否包含某内容

代码语言:javascript
复制
filename = 'pi_digits.txt'

with open(filename) as file_object:

lines = file_object.readlines()

pi_string= ''

for line in lines:

pi_stirng += line.strip()

birthday = input('Enter your birthday, in the form mmddyy:')

if birthday in pi_string:

print('Your birthday appeears in the first million digits of pi!')

else:

print('Your birthday does not appear in the first million digits of pi.')

读json格式的数据

代码语言:javascript
复制
filename = 'numbers.json'

with open(filename) as f_obj:

numbers = json.load(f_obj)

print(numbers)

文件写入

写入空文件

代码语言:javascript
复制
improt json

filename = 'programing.txt'

with open(filename, 'w') as file_object:

file_object.write("I love programming")
  • w,写入模式,如果文件已存在,将覆盖
  • a,附加模式,如果文件已存在,则附加,否则新建
  • r+,读写模式
  • Python只能将字符串写入文件,所以如果是数值数据,需用str()转换

写入json格式的数据

代码语言:javascript
复制
improt json

numbers = [2,3,5,7,11,13]

filename = 'numbers.json'

with open(filename, 'w') as f_obj:

json.dump(numbers, f_obj)

文件异常处理

很多初学者都没有在程序中写异常的意识,这会给程序带来很多危险,比如程序突然崩溃,攻击者可能会根据traceback对代码发起攻击,一般在涉及到数据交互,输入输出等地方,都要写异常处理语句。写法如例:

代码语言:javascript
复制
print("Give me two numbers, and I'll devide them.")

print("Enter 'q' to quit.")

while True:

first_number = input(\nFirst number:)

if first_number == 'q':

break

second_number = input(\nSecond number:)

try:

answer = int(first_number) / int(second_number)

except ZeroDivisionError:

print("You can't dividee by 0!")

else:

pirnt(answer)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年03月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文件读取
    • 整个读取
      • 逐行读取
        • 将文件内容读取到内存中
          • 存储到列表中
          • 存储到字符串中
        • 判断文件中是否包含某内容
          • 读json格式的数据
          • 文件写入
            • 写入空文件
              • 写入json格式的数据
              • 文件异常处理
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档