zoukankan      html  css  js  c++  java
  • Python基础语法之文件操作

    1 读文件

      1.1 简单读文件

    1 f = open('text', 'r')  # f是文件句柄
    2 data = f.read()  # read方法可以加整型参数,是几就读几个字符
    3 print(data)
    4 f.close()

      1.2 readline()和readlines()

        readline():每次读文件中的一句。

        readlines():将整个文件中的字符全部读出,并将其存在一个列表里,列表中的每个元素是文件中的一句。

        在读大文件时尽量不要用readlines,太占用内存。

    1 f = open('text', 'r')
    2 a = f.readline()
    3 b = f.readline()
    4 c = f.readline()
    5 d = f.readline()
    6 print(a)  # my name is Bob
    7 print(b)  # I am 18 years old
    8 print(c)  # I like learning
    9 print(d)  # I have a dog
    f = open('text', 'r')
    lines = f.readlines()
    print(lines)
    # ['my name is Bob
    ', 'I am 18 years old
    ', 'I like learning
    ', 'I have a dog']

      1.3 迭代器

        文件句柄是一个迭代器,可以通过for循环取出迭代器中的值,节约内存,处理效率更高。

    1 f = open('text', 'r')
    2 for i in f:
    3     print(i.strip())
    4 # my name is Bob
    5 # I am 18 years old
    6 # I like learning
    7 # I have a dog

    2 写文件

      2.1 清理写

    1 f = open('text', 'w')
    2 f.write('hello world')
    3 f.close()

      2.2 非清理写

    1 f = open('text', 'a')
    2 f.write('hello world')
    3 f.close()

    3 读取和调整光标的位置

    1 f = open('text', 'r')
    2 print(f.tell())  # 0
    3 print(f.read(2))  # he
    4 print(f.tell())  # 2
    5 f.seek(0)
    6 print(f.tell())  # 0

    4 将缓存区内容写进磁盘中

    1 f = open('text', 'w')
    2 f.write('Bob is 32')  # 此时文件中并没有写入
    3 f.flush()  # 将刚写入缓存区的内容写入到磁盘中
    4 f.close()

    5 文件的操作模式

    1 # r+ :从文章起始位置读,从文章最后写
    2 # w+ :从光标后一个字符读,在文章最后写,但是在打开文件时清空文档
    3 # a+ :从文章最后读,正常追加

    6 例题:在任意一行的后面添加字符串,并将文件打印出来

    1 with open('text', 'r') as f:
    2     num = 0
    3     for i in f.readlines():
    4         num += 1
    5         if num == 4:
    6             i = ''.join([i.strip(), '***'])
    7         print(i.strip())

    7 例题:修改文件中任意一行

    1 with open('text', 'r') as f_read, open('text1', 'w') as f_write:
    2     num = 0  # 计数,在符合行数时修改内容
    3     for line in f_read:  # 遍历f_read中的每行
    4         num += 1  # 没遍历一行,计数器加一
    5         if num == 4:  # 在第四次遍历时,即在第四行时执行if块语句
    6             line = 'hello
    '  # 当在第四行时将文件的内容改为hello
    7         f_write.write(line)  # 将处理后的所有字符串写入f_write
  • 相关阅读:
    Java并发编程:线程池
    并发编程之 CAS 的原理
    单例模式
    UWP开发入门(十七)——判断设备类型及响应VirtualKey
    UWP开发入门(十六)——常见的内存泄漏的原因
    UWP开发入门(十五)——在FlipView中通过手势操作图片
    UWP开发入门(十四)—— UserControl中Adaptive UI的小技巧
    UWP开发入门(十三)——用Diagnostic Tool检查内存泄漏
    UWP开发入门(十二)——神器Live Visual Tree
    UWP开发入门(十一)——Attached Property的简单应用
  • 原文地址:https://www.cnblogs.com/swenwen/p/10617684.html
Copyright © 2011-2022 走看看