基于linux下python的学习(文件操作、模块)

2023-05-16

一、文件操作

操作文件的函数/方法
在python中要操作文件需要记住的1个函数和3个方法
    #python中一切皆对象
    open  :打开文件,并且返回文件操作对象
    read  :将文件内容读取到内存
    write :将指定内容写入文件
    close :关闭文件
open函数负责打开文件,宾且返回文件对象
read/write/close三个方法都需要通过文件对象来调用


read方法--读取文件
open函数的第一个参数是要打开的文件名(文件名区分大小写)
    如果文件存在,返回文件操作对象
    如果文件不存在,会抛出异常
read方法可以一次性读入并返回文件的所有内容
close方法负责关闭文件

"""
1、# 如果忘记关闭文件,会造成系统消耗,而且会影响到后续对文件的访问
# 1.打开文件
file = open('REDME')

# 2.操作文件 读/写
# read方法:读取文件内容(一次性返回文件的所有内容)
text = file.read()
print text

# 3.关闭文件
# close方法:负责关闭文件
file.close()

# 在开发中,通常会先编写打开和关闭的代码

2、

文件指针:
    文件指针标记从哪个位置开始读取数据
    第一次打开文件时,通常文件指针会指向文件的开始位置
    当执行了read方法后,文件指针会移动到读取内容的末尾
"""
# 1.打开文件
file = open('REDME')

# 2.操作文件 读/写
# read方法:读取文件内容(一次性返回文件的所有内容)
text = file.read()
print text

print '*' * 50

# 第一次读取的时候,文件指针移动到了文件的末尾
# 再次调用不会读取到任何内容

text = file.read()
print text

# 3.关闭文件
# close方法:负责关闭文件
file.close()

3、

# 1.打开文件
file = open('/home/kiosk/file')

# 2.操作文件 读/写
# read方法:读取文件内容(一次性返回文件的所有内容)
text = file.read()
print text

# 打印输入内容的长度
print type(text)
print len(text)

print '*' * 50
text = file.read()
print text
print len(text)

# 3.关闭文件
# close方法:负责关闭文件
file.close()

4、

打开文件的方式:
    name = open('文件名','访问方式')


"""
# 以写的方式打开文件,如果文件存在会被覆盖,如果文件不存在,创建新文件
#1.打开文件
file = open('REDME','w')
# 2.写入文件
file.write('hello')
# 3.关闭文件
file.close()

5、

# 以追加方式打开文件
# 如果该文件存在,文件指针会放在文件的末尾
# 如果文件不存在,创建文件并写入
# 1.打开文件
file = open('REDME','a')
# 2.写入文件
file.write('linux')
# 3.关闭文件
file.close()

6、

按行读取文件
        read方法默认会把文件的所有内容一次性读到内存
        如果文件太大,对内存的占用会非常严重
readline方法:
    readline方法可以一次性读取一行内容
    方法执行后,会把文件指针移动到下一行,准备再次读取
"""
# 读取大文件的正确姿势

file = open('REDME')
# 为什么要写成死循环:因为我们不知道要读取的文件有多少行
while True:
    text = file.readline()
    # 如果文件指针到文件的最后一行,那么就读不到内容了
    if not text:
        break
    # 每读取一个行,末尾都已经有一个\n
    print text
file.close()

7、

# 1.打开文件
# 源文件以只读的方式打开
file_read = open('REDME')
# 目标文件以写的方式打开
file_write = open('README_COPY','w')

# 从源文件中读取内容
text = file_read.read()
# 将读取到的内容写到目标文件中
file_write.write(text)

# 关闭文件
file_read.close()
file_write.close()

8、

# 1.打开文件
file_read = open('REDME')
file_write = open('README_COPY','w')

# 读写
while True:
    text = file_read.readline()
    if not text:
        break
    file_write.write(text)

# 关闭
file_read.close()
file_write.close()

二(文件操作2)

关键字with在不需要访问文件后将其关闭,在这个程序中,
我们调用了open(),但没有调用close();你也可以调用open()和close来打开
和关闭文件,但这样做时,如果程序存在bug,导致close()语句没有执行,
文件将不会关闭,未妥善地关闭文件可能会导致数据丢失或受损,
如果在程序中过早地调用close(),
你会发现需要使用文件时它已经关闭(无法访问),
这会导致更多地错误,你并非在任何情况下都能轻松地确定关闭文件地恰当时机
通过使用with结构,可让python去确定,
你只管打开文件,并在需要时使用它,
python会在合适的时候自动将其关闭


"""
1、

with open('pi_digits') as file_object:
    contents = file_object.read()
    print contents

2、

filename = 'pi_digits'
with open(filename) as file_object:
    for line in file_object:
        print line

3、

filename = 'pi_digits'
with open(filename) as file_object:
    lines = file_object.readline()
for line in lines:
    print line

4、

filename = 'linux'
with open(filename,'w') as file_object:
    file_object.write('I love python.\n')
    file_object.write('I love linux.')

5、

filename = 'linux'
with open(filename,'a') as file_object:
    file_object.write('I love python.\n')
    file_object.write('I love linux.')

三、模块

test1:

title = '模块1'
# 函数
def say_hello():
    print '我是%s' % title
# 类
class Cat(object):
    pass

test2:

title = '模块2'
# 函数
def say_hello():
    print '我是%s' % title
# 类
class Dog(object):
    pass

1、

# 在导入模块时,每个导入应独占一行
import test1
import test2

test1.say_hello()
test2.say_hello()

cat = test1.Cat()
print cat

dog = test2.Dog()
print dog

2、

# 使用as指定模块的别名(大驼峰命名法)
import test1 as CatXi
import test2 as DogXi

CatXi.say_hello()
DogXi.say_hello()

cat = CatXi.Cat()
print cat

dog = DogXi.Dog()
print dog

3、

from test1 import Cat
from test2 import say_hello

say_hello()
miaomiao = Cat()
print miaomiao

4、

from test1 import Cat
from test2 import say_hello   # 此时test2的say_hello会被覆盖,不能显示
from test1 import say_hello
say_hello()
miaomiao = Cat()
print miaomiao


5、

from test1 import  Cat
from test2 import say_hello
from test1  import say_hello  as  test1_say_hello
say_hello()
miaomiao = Cat()
print miaomiao
test1_say_hello()

6、

python的解释器在导入模块的时候,会:
1、搜索当前目录指定的模块文件,如果有就直接导入
2、如果没有,再搜索系统目录
注意:在开发时,给文件起名,不要和系统模块文件重名

"""
import random
rand = random.randint(0,10)
print rand

test09:

#全局变量、函数、类直接执行的代码不是向外界提供的工具
def say_hello():
    print 'hello hello'

say_hello()

1、

import  test09

test10:

__name__属性
可以做到,测试模块的代码只在测试情况下被运行,而在被导入时不会执行
__name__是python的一个内置属性,记录着一个字符串,如果是被其他文件导入
时,__name__就是文件名(模块名),如果是当前执行的程序,__name__就是__main__
"""
#全局变量、函数、类直接执行的代码不是向外界提供的工具
def say_hello():
    print 'hello hello'
# 如果直接再模块中输入print __name__得到的是__main__
if __name__ == '__main__':
    print __name__
# 文件被导入时,能够直接被执行的代码不需要被执行
    print 'lily 开发的程序'
    say_hello()

1、

在很多python文件中会看到以下格式的代码
  #导入模块
  #定义全部变量
  #定义类
  #定义函数

  #再代码的下方
  def main():
      pass
  if  __name__ =='__main__':
      main()
"""
import  test10

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于linux下python的学习(文件操作、模块) 的相关文章

  • python 中的代表

    我实现了这个简短的示例来尝试演示一个简单的委托模式 我的问题是 这看起来我已经理解了委托吗 class Handler def init self parent None self parent parent def Handle self
  • 如何迭代按值排序的 Python 字典?

    我有一本字典 比如 a 6 b 1 c 2 我想迭代一下by value 不是通过键 换句话说 b 1 c 2 a 6 最直接的方法是什么 sorted dictionary items key lambda x x 1 对于那些讨厌 la
  • 从 ffmpeg 获取实时输出以在进度条中使用(PyQt4,stdout)

    我已经查看了很多问题 但仍然无法完全弄清楚 我正在使用 PyQt 并且希望能够运行ffmpeg i file mp4 file avi并获取流式输出 以便我可以创建进度条 我看过这些问题 ffmpeg可以显示进度条吗 https stack
  • 如何使用 imaplib 获取“消息 ID”

    我尝试获取一个在操作期间不会更改的唯一 ID 我觉得UID不好 所以我认为 Message ID 是正确的 但我不知道如何获取它 我只知道 imap fetch uid XXXX 有人有解决方案吗 来自 IMAP 文档本身 IMAP4消息号
  • 通过列表理解压平列表列表

    我正在尝试使用 python 中的列表理解来展平列表 我的清单有点像 1 2 3 4 5 6 7 8 只是为了打印这个列表列表中的单个项目 我编写了这个函数 def flat listoflist for item in listoflis
  • Django 模型在模板中不可迭代

    我试图迭代模型以获取列表中的第一个图像 但它给了我错误 即模型不可迭代 以下是我的模型和模板的代码 我只需要获取与单个产品相关的列表中的第一个图像 模型 py class Product models Model title models
  • if 语句未命中中的 continue 断点

    在下面的代码中 两者a and b是生成器函数的输出 并且可以评估为None或者有一个值 def testBehaviour self a None b 5 while True if not a or not b continue pri
  • 忽略 Mercurial hook 中的某些 Mercurial 命令

    我有一个像这样的善变钩子 hooks pretxncommit myhook python path to file myhook 代码如下所示 def myhook ui repo kwargs do some stuff 但在我的例子中
  • Pandas 数据帧到 numpy 数组 [重复]

    这个问题在这里已经有答案了 我对 Python 很陌生 经验也很少 我已经设法通过复制 粘贴和替换我拥有的数据来使一些代码正常工作 但是我一直在寻找如何从数据框中选择数据 但无法理解这些示例并替换我自己的数据 总体目标 如果有人真的可以帮助
  • 在Python中调整图像大小

    我有一张尺寸为 288 352 的图像 我想将其大小调整为 160 240 我尝试了以下代码 im imread abc png img im resize 160 240 Image ANTIALIAS 但它给出了一个错误TypeErro
  • 查找哪些页面不再与写入时复制共享

    假设我在 Linux 中有一个进程 我从中fork 另一个相同的过程 后forking 因为原始进程将开始写入内存 Linux写时复制机制将为进程提供与分叉进程使用的不同的唯一物理内存页 在执行的某个时刻 我如何知道原始进程的哪些页面已被写
  • python suds SOAP 请求中的名称空间前缀错误

    我使用 python suds 来实现客户端 并且在发送的 SOAP 标头中得到了错误的命名空间前缀 用于定义由element ref 在 wsdl 中 wsdl 正在引用数据类型 xsd 文件 请参见下文 问题出在函数上GetRecord
  • TensorFlow的./configure在哪里以及如何启用GPU支持?

    在我的 Ubuntu 上安装 TensorFlow 时 我想将 GPU 与 CUDA 结合使用 但我却停在了这一步官方教程 http www tensorflow org get started os setup md 这到底是哪里 con
  • ftrace:仅打印trace_printk()的输出

    是否可以只转储trace printk 输出于trace文件 我的意思是过滤掉函数跟踪器 或任何其他跟踪器 中的所有函数 一般来说 您可以在选项目录中关闭选项 sys kernel debug tracing options Use ls显
  • 首先对列表中最长的项目进行排序

    我正在使用 lambda 来修改排序的行为 sorted list key lambda item item lower len item 对包含元素的列表进行排序A1 A2 A3 A B1 B2 B3 B 结果是A A1 A2 A3 B
  • 如何使用列表作为pandas数据框中的值?

    我有一个数据框 需要列的子集包含具有多个值的条目 下面是一个带有 运行时 列的数据框 其中包含程序在各种条件下的运行时 df condition a runtimes 1 1 5 2 condition b runtimes 0 5 0 7
  • 如何为每个屏幕添加自己的 .py 和 .kv 文件?

    我想为每个屏幕都有一个单独的 py 和 kv 文件 应通过 main py main kv 中的 ScreenManager 选择屏幕 设计应从文件 screen X kv 加载 类等应从文件 screen X py 加载 Screens
  • 您可以将操作直接应用于map/reduce/filter 中的参数吗?

    map and filter通常可以与列表理解互换 但是reduce并不那么容易被交换map and filter 此外 在某些情况下我仍然更喜欢函数语法 但是 当您需要对参数本身进行操作时 我发现自己正在经历语法体操 最终必须编写整个函数
  • Python 无法使用套接字绑定我的外部/公共 IP 地址,给出错误但是当使用本地 IP 地址时,错误不会显示

    这是出现主要错误的代码 与我的本地 IP 的绑定将起作用 s bind 192 168 1 4 port 与我的公共 IP 的绑定失败并出现以下错误 s bind 99 99 99 99 port WinError 10049 请求的地址在
  • 您可以使用关键字参数而不提供默认值吗?

    我习惯于在 Python 中使用这样的函数 方法定义 def my function arg1 None arg2 default do stuff here 如果我不供应arg1 or arg2 那么默认值None or default

随机推荐

  • x11vnc

    x11vnc display 0 auth guess rfbport 5900 forever shared noxdamage noncache repeat amp auth 关窗口退出 auth guess 关窗口不退出 用户注销退
  • 多个生产者和消费者线程

    span class token comment 作者 xff1a kuma 版本 xff1a v1 0 span span class token keyword public span span class token keyword
  • C/C++ 开源库及示例代码

    C C 43 43 开源库及示例代码 说明 本页面汇总俺收集的各种 C 和 C 43 43 的开源代码库 xff0c 不定期更新 如果你发现本页面的开源库有错漏之处 xff0c 非常欢迎给俺提供反馈 有 GitHub 帐号的同学 xff0c
  • UEFI分区的重建办法,不需要额外软件

    如果你的EFI分区还在 只是被破坏需要修复的话 xff0c 执行 bcdboot c windows l cn zh 即可 xff0c c是Windows安装的盘符 xff0c 如果是装机工具启动可能window的分区不是显示的c 如果连E
  • powershell 设置环境变量

    cmd 是用set 导出变量 xff0c 到了powershell中不好使了 xff0c 下面介绍下导出变量的方法 xff0c 比如想设置 ETCDCTL API 61 3 在powershell中执行下面命令就可以了 Env ETCDCT
  • Httpd 服务

    httpd服务 1 httpd服务简介 Apache HTTP Server xff08 简称Apache或httpd xff09 是Apache软件基金会的一个开放源代码的网页服务器软件 xff0c 旨在为unix xff0c windo
  • Lottie—json文件解析

    Lottie主要类图 xff1a Lottie对外通过控件LottieAnimationView暴露接口 xff0c 控制动画 LottieAnimationView继承自ImageView xff0c 通过当前时间绘制canvas显示到界
  • Android中获取应用程序(包)的信息-----PackageManager的使用

    Android系统为我们提供了很多服务管理的类 xff0c 包括ActivityManager PowerManager 电源管理 AudioManager 音频管理 等 除此之外 xff0c 还提供了一个PackageManger管理类
  • Android开发与调试二:串口uart Debug

    安卓智能硬件开发板 xff0c 往往会预留一个 uart口 xff0c 串口的形式打出 log出来 xff0c 便于我们开发的时候 debug 工具 xff1a 1个 FT232的模块 xff08 如下图 xff0c 淘宝有卖 xff09
  • 正则表达式以及Java中的一个正则表达式处理库

    如果你不熟悉这个术语 xff0c 那么 正则表达式 xff08 Regular Expression xff09 就是一个字符构成的串 xff0c 它定义了一个用来搜索匹配字符串的模式 正则表达式30分钟入门教程 常用正则表达式 许多语言
  • Ubuntu包安装问题(E: Broken packages)[2014-01-03更新]

    问题描述 使用apt get安装软件包时不能正确安装 xff0c 出现提示如下 xff1a apt get install libgtk2 0 dev Reading package lists Done Building dependen
  • c#文案语音配图片一键生成视频

    高手略过吧 xff0c 功能太简单 xff0c 我自己都不好意思 这个是我自己的需要 xff0c 做产品类的短视频 xff0c 东搞西搞剪辑啊啥的 xff0c 特别麻烦 xff0c 所以先搞这个最简版 xff0c 以后再一步步丰富功能 需求
  • 操作系统 使用C语言实现生产者和消费者问题

    生产者与消费者问题描述及原理在这里不赘述 xff0c 这是用c语言简单实现了一下 xff0c 加上代码不超过100行 include lt stdio h gt include lt windows h gt define N 10 typ
  • docker配置容器内的systemctl

    span class token builtin class name cd span root span class token function vi span startFrpc sh span class token comment
  • android setting之Settings.system设置

    在开发调试android 系统的Setting时 xff0c 总是会见到以下的代码 span class token class name Settings span class token punctuation span System
  • [851]反反爬--如何巧过CloudFlare 5秒盾

    巧破 Cloudflare 5秒盾 相信下面这个界面大家都不会陌生 图1 1 当我们第一次访问使用 CloudFlare 加速的网站时 xff0c 网站就会出现让我们等待 5 秒种的提示 xff0c 当我们需要的通过爬虫爬取这类网站的时候
  • [513]linux设置开机自启动

    文章目录 自启动方法1自启动方法2方法3 xff1a 在 96 etc rc d init d 96 目录下添加自启动脚本关机要执行的命令 自启动方法1 1 权限编辑 etc rc d rc local cd etc rc d vim rc
  • 个人网页制作(教你制作简单网页)

    我相信很多人或多或少都曾想建立一个个人网站吧 xff0c 或分享生活瞬间 或分享学习心得 或者是分享技术文章 又或者是有其他想法 xff08 打造个人ip 商业变现或是其他 xff09 今天跟大家分享一下一般网站的搭建流程 xff0c 对建
  • 程序员学习能力提升三要素

    IT技术的发展日新月异 xff0c 新技术层出不穷 xff0c 具有良好的学习能力 xff0c 能及时获取新知识 随时补充和丰富自己 xff0c 已成为程序员职业发展的核心竞争力 多年的学习经验总结出了提高程序员学习能力的三个要点 学习人人
  • 基于linux下python的学习(文件操作、模块)

    一 文件操作 操作文件的函数 方法 在python中要操作文件需要记住的1个函数和3个方法 python中一切皆对象 open 打开文件 xff0c 并且返回文件操作对象 read 将文件内容读取到内存 write 将指定内容写入文件 cl