关于Python什么时候用记事本打开,什么时候可以直接运行的问题

img

img


什么时候是可以直接运行出结果,什么时候是要用记事本打开,为什么之前写的都可以直接运行,但是遇到open()一个文件就要用记事本呢?

后缀名为 exe com cmd bat 等的是程序或者脚本,可以直接运行或者系统执行
后缀名为 txt doc docx bmp xlsx ... 等,是文档,需要对应的程序打开。

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7525613
  • 这篇博客也不错, 你可以看下python在提示符下使用open打开文件失败原因
  • 除此之外, 这篇博客: Python函数进阶与文件操作中的 2、open函数打开文件 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在Python,使用open()函数,可以打开一个已经存在的文件,或者创建一个新文件,语法如下:

    f = open(name, mode)
    注:返回的结果是一个file文件对象(后续会学习,只需要记住,后续方法都是f.方法()

    name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。

    mode:设置打开文件的模式(访问模式):只读r、写入w、追加a等。

    r模式:代表以只读模式打开一个已存在的文件,后续我们对这个文件只能进行读取操作。如果文件不存在,则直接报错。另外,r模式在打开文件时,会将光标放在文件的一行。

    w模式:代表以只写模式打开一个文件,文件不存在,则自动创建该文件。w模式主要是针对文件写入而定义的模式。但是,要特别注意,w模式在写入时,光标也是置于第一行同时还会清空原有文件内容。

    a模式:代表以追加模式打开一个文件,文件不存在,则自动创建该文件。a模式主要也是针对文件写入而定义模式。但是和w模式有所不同,a模式不会清空文件的原有内容,而是在文件的尾部追加内容。

  • 您还可以看一下 于成令老师的Python数据爬虫项目实战课程中的 数据存储并下载数据保存本地小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    回答:

    Python代码的运行方式包括两种方式:一种是在Python解释器中交互式运行,即在命令行中直接输入python并回车进入交互式模式,可以逐行输入和执行Python代码;另一种是将Python代码写在一个.py文件中,通过终端或命令行进入该文件所在的目录,输入python 文件名.py并回车运行代码。如果文件中有语法错误或其他异常,Python解释器会提示错误信息。

    打开文件的方法一般使用内置函数open(),通过open()函数创建文件对象来操作文件。可以指定打开文件的模式mode,常见的模式有'r'、'w'、'a'等。其中'r'为只读模式,'w'为只写模式,'a'为写入模式并在文件末尾追加,可以通过在mode后加上'+'实现读写模式。在使用open()函数打开文件后,可以通过with语句块来自动关闭文件,或者在finally语句块中手动关闭文件。

    使用open()函数打开文件时,可以通过encoding参数指定文件的编码方式,常见的编码方式有utf-8、gbk等。如果文件没有指定编码方式,Python解释器会根据平台的默认编码来解码。在使用open()函数打开文件后,可以通过文件对象的read()方法读取文件内容,或者通过write()方法写入内容。还可以通过with语句块来操作文件,该语句块内的代码执行结束后会自动关闭文件。

    示例代码:打开文件、读取文件、写入文件、关闭文件

    # 打开文件方式一:使用with语句块
    path = 'test.txt'
    with open(path, 'r', encoding='utf-8') as f:
        contents = f.read()
        print(contents)
    
    # 打开文件方式二:手动打开和关闭文件
    try:
        f = open(path, 'a', encoding='utf-8')
        f.write('Hello world!\n')
    except:
        print('写入文件失败')
    finally:
        f.close()
    
    # 写入文件后再次读取文件
    with open(path, 'r', encoding='utf-8') as f:
        contents = f.read()
        print(contents)
    

    将文件A中的内容复制黏贴到文件B中,可以通过读取文件A中的内容后写入到文件B中实现。示例代码如下:

    with open('fileA.txt', 'r') as readfile:
        with open('fileB.txt', 'w') as writefile:
            for line in readfile:
                writefile.write(line)
    

    其中,'fileA.txt'和'fileB.txt'为文件路径,'r'和'w'分别为读取文件和写入文件的模式。使用with语句块来自动关闭文件。读取文件A的内容后,逐行写入到文件B中,最终实现文件复制。

    如果文件较大,可以采用分块读写的方式,示例代码如下:

    BUFFER_SIZE = 1024 * 1024 # 1MB
    
    with open('fileA.txt', 'rb') as readfile:
        with open('fileB.txt', 'wb') as writefile:
            while True:
                buf = readfile.read(BUFFER_SIZE)
                if not buf:
                    break
                writefile.write(buf)
    

    其中,'fileA.txt'和'fileB.txt'为文件路径,'rb'和'wb'分别为二进制文件的读取和写入模式。定义了BUFFER_SIZE为1MB,从文件A中每次读取1MB的内容,写入到文件B中,直到读取完整个文件为止。