<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Python on LeoChu Space</title>
    <link>https://leochu.work/blog/tech/python/</link>
    <description>Recent content in Python on LeoChu Space</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sat, 30 Mar 2024 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://leochu.work/blog/tech/python/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>python读文件</title>
      <link>https://leochu.work/blog/tech/python/python%E8%AF%BB%E6%96%87%E4%BB%B6/</link>
      <pubDate>Sat, 30 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://leochu.work/blog/tech/python/python%E8%AF%BB%E6%96%87%E4%BB%B6/</guid>
      <description>&lt;h2 id=&#34;1-直接打开就读&#34;&gt;1. 直接打开就读&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;with open(&amp;#39;filepath&amp;#39;,&amp;#39;r&amp;#39;) as f:
    for line in f:
        print（line）
        print(&amp;#39;一行数据&amp;#39;)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;虽然 f 是一个文件实例，但可以通过以上方式对每一行进行循环处理了，处理时每一行是一个字符串 str, 而且这个是速度最快最简洁的方法&lt;/p&gt;
&lt;h2 id=&#34;2-用-read打开&#34;&gt;2. 用 read（）打开&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;with open(&amp;#39;filepath&amp;#39;,&amp;#39;r&amp;#39;) as f:
    ff=f.read()
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这个函数把文件全部内容一次性读到一个字符串中。就是一坨的那种，如果把 ff 用循环读取的方式输出，会是一个一个字符，因为 ff 是字符串，本质上是 tuple&lt;/p&gt;
&lt;h2 id=&#34;3-用-readlines&#34;&gt;3. 用 readlines（）&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;with open(&amp;#39;filepath&amp;#39;,&amp;#39;r&amp;#39;) as f:
    lines=f.readlines()
    for line in lines:
        print(line)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这个函数将文件所用内容以行为区分读到一个列表中 ，列表中的每一个元素是一行；lines 是 list，line 是 str&lt;/p&gt;
&lt;h2 id=&#34;4-用-readline&#34;&gt;4. 用 readline()&lt;/h2&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;with open(&amp;#39;filepath&amp;#39;,&amp;#39;r&amp;#39;) as f:
    line =f.readline()
    while line:
        print(line)
        line=f.readline()
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这种方式是一行一行的读，非常的省内存，当文件巨大的情况下是有好处的&lt;/p&gt;
&lt;h2 id=&#34;注&#34;&gt;注&lt;/h2&gt;
&lt;p&gt;如果不用 with open 可以用以下代码来打开关闭文件&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;f=open(path,&amp;#39;r&amp;#39;)
f.close()
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
  </channel>
</rss>
