精华内容
下载资源
问答
  • python打开文本文档Python with statement allows us to write simpler code when working with context managers. The with statement was introduced in Python 2.5 under PEP 343. Python with语句使我们在与上...

    python打开文本文档

    Python with statement allows us to write simpler code when working with context managers. The with statement was introduced in Python 2.5 under PEP 343.

    Python with语句使我们在与上下文管理器一起工作时可以编写更简单的代码。 with语句是在PEP 343下的Python 2.5中引入的。

    1.什么是上下文管理器? (1. What is a Context Manager?)

    A context manager is an object that creates and manages a runtime context. The typical usage of context managers is to save and restore the global state, lock and unlock resources, opening and closing files, etc.

    上下文管理器是创建和管理运行时上下文的对象。 上下文管理器的典型用法是保存和还原全局状态,锁定和解锁资源,打开和关闭文件等。

    2.上下文管理器的生命周期 (2. The lifecycle of Context Manager)

    The context manager object must define the enter() and exit() methods. These methods are called when the runtime context is created and when it’s destroyed.

    上下文管理器对象必须定义enter()exit()方法。 创建运行时上下文以及销毁它们时将调用这些方法。

    3.为什么我们需要Python with语句? (3. Why do we need Python with statement?)

    When we have to work with a file, we have to first open it. It creates a runtime context manager for the file. After the work is done, we have to manually close the file so that the context manager terminates properly.

    当我们必须使用文件时,我们必须首先打开它。 它为文件创建一个运行时上下文管理器。 工作完成后,我们必须手动关闭文件,以便上下文管理器正确终止。

    We generally use the try-except block to work with the file and finally block to close the file. This makes sure that the file gets closed even if there is an error raised by the try block.

    我们通常使用try-except块来处理文件,最后使用块来关闭文件。 这样可以确保即使try块引发错误,文件也可以关闭。

    try:
        txt_file = open("abc.txt")
        # do some operations
        txt_file.close()
    except FileNotFoundError as e:
        print(e)
    finally:
        txt_file.close()

    Python with statement takes care of calling the exit() method of the context manager when the code inside the with block is executed.

    执行with块中的代码时,Python with语句负责调用上下文管理器的exit()方法。

    Let’s rewrite the above code using the with statement.

    让我们使用with语句重写上面的代码。

    with open("abc.txt") as file:
        # do some operations
        print("Done")

    The code is much simpler to read and we don’t have to worry about closing the file every time.

    该代码更易于阅读,我们不必担心每次都关闭文件。

    4. Python与语句自定义上下文管理器示例 (4. Python with Statement Custom Context Manager Example)

    We can define our own custom context manager by implementing enter() and exit() methods.

    我们可以通过实现enter()和exit()方法来定义自己的自定义上下文管理器。

    class MyContext:
    
        def __init__(self):
            print("init method of MyContext")
    
        def __enter__(self):
            print("entering context of MyContext")
    
        def __exit__(self, exc_type, exc_val, exc_tb):
            print("exit context of MyContext")
    
    
    with MyContext() as my_context:
        print("my_context code")

    Output:

    输出:

    init method of MyContext
    entering context of MyContext
    my_context code
    exit context of MyContext
    • The context manager is initialized.

      上下文管理器已初始化。
    • Then the __enter__() method is called for the context manager object.

      然后,为上下文管理器对象调用__enter __()方法。
    • The code inside the with block is executed.

      with块中的代码被执行。
    • Finally, the __exit__() method of the context manager is called.

      最后,调用上下文管理器的__exit __()方法。

    5.带有打开文件的Python (5. Python with open files)

    Python 3.1 enhanced the with statement to support multiple context managers. Let’s see how to open multiple files using the with statement.

    Python 3.1增强了with语句,以支持多个上下文管理器。 让我们看看如何使用with语句打开多个文件。

    with open("abc.txt") as file1, open("abc.txt") as file2:
        pass

    The above code is equivalent to multiple nested with statements.

    上面的代码等效于多个嵌套的with语句。

    with open("abc.txt") as file1:
        with open("abc.txt") as file2:
            pass

    6.带有语句异常情况的Python (6. Python with statement exception scenarios)

    If there is an exception raised in the with block, its type, value, and traceback are passed as arguments to __exit__().

    如果with块中引发了异常,则将其类型,值和回溯作为参数传递给__exit __()。

    If the __exit__() method returns False, then the exception is re-raised.

    如果__exit __()方法返回False,则重新引发异常。

    class MyContext:
    
        def __init__(self):
            print("init method of MyContext")
    
        def __enter__(self):
            print("entering context of MyContext")
    
        def __exit__(self, exc_type, exc_val, exc_tb):
            print(f'exit context of MyContext - {exc_type} :: {exc_val} :: {exc_tb}')
            return False
    
    
    with MyContext() as my_context:
        print("my_context code")
        raise TypeError("TypeError inside with block")

    Output:

    输出:

    init method of MyContext
    entering context of MyContext
    my_context code
    exit context of MyContext - <class 'TypeError'> :: TypeError inside with block :: <traceback object at 0x1044e8f48>
    Traceback (most recent call last):
      File "/Users/pankaj/Documents/PycharmProjects/hello-world/journaldev/with_statement.py", line 32, in <module>
        raise TypeError("TypeError inside with block")
    TypeError: TypeError inside with block

    If the __exit__() method returns True, then the exception is consumed and normal execution continues.

    如果__exit __()方法返回True,则使用该异常并继续正常执行。

    class MyContext:
    
        def __init__(self):
            print("init method of MyContext")
    
        def __enter__(self):
            print("entering context of MyContext")
    
        def __exit__(self, exc_type, exc_val, exc_tb):
            print(f'exit context of MyContext - {exc_type} :: {exc_val} :: {exc_tb}')
            return True
    
    
    with MyContext() as my_context:
        print("my_context code")
        raise TypeError("TypeError inside with block")
    
    print("Done")

    Output:

    输出:

    init method of MyContext
    entering context of MyContext
    my_context code
    exit context of MyContext - <class 'TypeError'> :: TypeError inside with block :: <traceback object at 0x102149e08>
    Done

    7.结论 (7. Conclusion)

    Python with statement takes care of managing the life cycle of the context manager. The code looks small and removes the chance of leaving the context manager open due to poor programming.

    Python with语句负责管理上下文管理器的生命周期。 该代码看起来很小,并且消除了由于不良编程而使上下文管理器保持打开状态的机会。

    8.参考 (8. References)

    翻译自: https://www.journaldev.com/33273/python-with-statement-with-open-file

    python打开文本文档

    展开全文
  • 问题: 用python打开windows中的文本文件时,输出的会是乱码 原因: python打开时默认是用unicode 解决方案: open('wo.txt', 'r', encoding='utf-8')

    问题:

    用python打开windows中的文本文件时,输出的会是乱码

    原因:

    python打开时默认是用unicode

    解决方案:

    open('wo.txt', 'r', encoding='utf-8')
    
    展开全文
  • Python中用numpy的 gefromtxt 打开一个文本,出现如下错误: File "D:\NewPython\venv\lib\site-packages\numpy\lib\npyio.py", line 1786, in genfromtxt first_line = _decode_line(next(fhd), encoding) ...

    Python中用numpy的 gefromtxt 打开一个文本,出现如下错误:

    File "D:\NewPython\venv\lib\site-packages\numpy\lib\npyio.py", line 1786, in genfromtxt
        first_line = _decode_line(next(fhd), encoding)
    UnicodeDecodeError: 'gbk' codec can't decode byte 0x98 in position 14: illegal multibyte sequence

    做了几个操作,包括:

    1、将pycharm右下角的GBK 变成 UTF-8----没用!

    2、在notepad++ 里面将文本文档转化成UTF-8编码之后 再运行代码-----没用!

    最后的解决办法为在genfromtxt里加上  encoding='utf-8',即:

    gongdan = np.genfromtxt('gd.txt',dtype=str,delimiter=',',encoding='utf-8')

    解决!

    展开全文
  • /usr/bin/env python # -*- coding: utf-8 -*- # Author: Liye Z # Date:2020.10.13 23:31 #Description: open a txt including unrelvant characters(titles) and exiperiment raw data(f(x) two-column data like ...
    # !/usr/bin/env python
    #  -*- coding: utf-8 -*-
    # Author:
    # Date:2020.10.13   23:31
    #Description: open a txt including unrelvant characters(titles) and exiperiment raw data(f(x)  two-column data like    adsorbtion versus wavelength in UV-vis) and give a plot.
    import tkinter as tk
    from tkinter.filedialog import askopenfilename
    from itertools import islice
    import sys
    import fileinput
    import matplotlib.pylab as pylab
    #import numpy as np
    #import matplotlib.pyplot as plt
    data_file_path = askopenfilename(title='Select a data',filetypes=[('TXT','*.txt')],initialdir='C:\\Users\\zhuli\\Desktop\\20201013')
    print(data_file_path)
    #f1 = open(data_file_path,'r')
    #E:\00 Experiment\20201013
    #islice(seq[, start], stop[, step]);
    from itertools import islice
    #with open(r'E:\\xx\\movie2.txt', encoding='utf-8', ) as txtfile:
    data=[]
    with open(data_file_path ) as txtfile:
        line = txtfile.readlines()
        for i, rows in enumerate(line):
            if i in range(58, len(line)-1):  # 指定数据行
                #print(rows)
                data.append(rows)
    print("length", len(data))
    txtfile.close()
    # 写入txt
    with open('C:\\Users\\xxxx\\Desktop\\20201013\\6-1.dat', "w", ) as f:
        for i in range(len(data)):
            f.writelines(data[i])
        f.close()
    
    #Reference   http://www.360doc.com/content/19/0828/10/47812380_857519286.shtml
    #Say thanks to the author of the docment.
    展开全文
  • 使用os.open方法 os.optn语法 # file 创建的文本,或者打开文本 # flags 使用什么权限打开 os.open(file, flags[, mode]); flags(支持传多个参数中间使用|隔开) os.O_RDONLY: 以只读的方式打开 os.O_WRONLY: 以...
  • python具有基本的文本文件读写功能。 python的标准库提供有更丰富的读写功能。 文本文件的读写主要通过open()所构建的文件对象来实现。 创建文件对象我们打开一个文件,并使用一个对象来表示该文件:f = open(文件名...
  • python GUI打开文本文件代码

    千次阅读 2020-01-30 15:22:46
    askopenfiles 打开文件,python 代码 from tkinter import * from tkinter.filedialog import * root=Tk();root.geometry(‘400x100’) def test(): with askopenfile(title=“上传文件”, initialdir=“d:”,file...
  • Python读取文本文件

    万次阅读 2018-10-19 14:48:17
    #打开文本文件 f = open('C:/Users/Administrator/Desktop/PythonTool/单波束数据/灯浮.TGT','rb') #里面为文件路径 print(f.read()) 2.按行读取文本 #打开文本文件 f = open('C:/Users/Administrator/Desktop/...
  • Python处理文本文件

    2020-09-13 18:59:41
    Python处理文本文件1.文件的打开与读取1.1 读取方式2.文件的写入3. python处理文本文件,可以把文本的内容当做字符串变量进行查找、替换、插入、删除等操作。 1.文件的打开与读取 # 文件的打开与读取 # 步骤:打开...
  • Python文本操作

    2021-01-05 22:19:37
    Python文本操作 文本文件 文本文件是一种典型的顺序文件,其文件的逻辑结构又属于流式文件。文本文件是指以 ASCII 码...Python 的 open 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个
  • Python3文本读写操作

    千次阅读 2018-10-09 22:23:17
    打开文本 f=open(‘路径/文件名’, ‘读写格式’, ‘编码方式’, ‘错误处理方式’) 例如: f = open(’/Usersiccy/Desktop/PythonCode/test.txt’,‘r’, encoding=‘UTF-8’, errors=‘ignore’) 打开文本...
  • python文本处理

    2020-12-22 07:37:22
    文本文件的处理 打开文件 函数:open(filename,mode) filename => 访问的文件 mode => 访问模式 常见模式 作用 r 只读 r+ 读写 w 只写 文件存在则覆盖,不存在则创建 w+ 只写 文件存在则覆盖,不存在则...
  • Python读取文本内容

    千次阅读 2020-03-19 20:29:25
    Python读取文件时进行文本处理的前提,在进行读取文件之前,我们先创建一个文本文件作为源文件,例子中文件名为exercise1.txt,文件内容如下: 综述  在Python中,读文件主要分为三个步骤:打开文件、读取内容、...
  • python读取文本数据

    2019-01-03 21:56:54
    1. python读取文本文件实现机制 读写文件是最常见的IO操作。Python内置了读写文件的函数. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘...
  • 在获取csv文本内容的时候,基本上都是用with open(filename, encoding =’UTF-8′) as f:来打开csv文本,但是实际使用过程中发现有些csv文本并不是utf-8格式,从而导致程序在run的过程中报错,每次都需要手动去把该...
  • Python文本文件

    2021-01-07 11:44:28
    编写程序,创建一个文本文件,输入该内容(“中华人民共和国中国人民”)(存放D盘根目录下)打开文本文件,读出其中内容,统计“中国”关键字出现的次数。</p>
  • Python实现文本替换

    万次阅读 2019-02-26 19:54:54
    今天学了python文件读写,老师布置的作业就是检索文本,对某一关键词进行检索并且替换。 这里用到了文件读写的知识,主要注意的是1.字符集的处理 使用utf-8 2.按行读取,避免文件读取失败 主要的操作流程为打开...
  • python打开并读取txt、exe文本

    万次阅读 2018-09-07 14:53:55
    python读取.txt文本数据: f = open('addrs.txt', 'r') 注意:若果报上面的错误用下面的方式解决 f = open('addrs.txt', 'rb') line=f.readline()只读取第一行 lines=f.readlines()读取所有的行 注意...
  • :fountain_pen: 编辑器-从Python内部打开文本编辑器 :fountain_pen: editor打开一个用于现有文件,新文件或临时文件的文本编辑器,该文本编辑器在用户编辑文本并返回结果时被阻止。 您可以指定运行编辑的命令行,...
  • python读写文本

    2018-03-07 09:18:13
    写的话其实也很简单,打开文件然后写入,之后就是关闭 fname = 'RP.txt' PR_file = open(fname,'w') PR_file.write(str(R_mean)+','+str(P_mean)+'\n') PR_file.close() 读文本: f = open(txt, 'r') ...
  • python实现文本翻译

    2021-05-22 15:16:42
    最近在学python,觉得这个挺有意思,对于以后学爬虫很有帮助。 实现这个功能需要以下几个步骤: 一、打开有道翻译网页。 我是用谷歌浏览器打开的。 二、打开元素检查。 先打开检查,再输入要翻译的 文字,这样就能...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,091
精华内容 1,636
关键字:

python打开文本

python 订阅