这一讲,我们来讲Python对文件的处理。
要让python对(txt)文件操作,首先我们新建一个名叫“pi
”的txt文件,文件内容可复制:(π的前100位,第一行“0628620”后是非人为空行)
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706
读取文件
之后我们新建个Python文件:
withopen('pi.txt')asfile_object:
contents = file_object.read()
print(contents)
函数open是要打开(open)文件,而只有打开文件,才能访问它,读取或修改。
而关键词with在不需要再继续访问文件后将其关闭。
如果你想要运行这个程序,你要将名叫“pi.txt”的文件放入你新建Python文件的同级文件夹当中。
运行程序时,我们会发现,在这100位的π结束后,有一个空行。
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706
这是因为read()读完文件后会返回一个空字符串,而这个空字符串被print打印出来就变成了一个空行。如果要把空行去掉,就要将最后一句:
print(contents)
变成
print(contents.rstrip())
空行就没有了
逐行读取
我们把文件改成:(π后面人为空行)
π≈
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706
让python逐行读取这个txt。
withopen('pi.txt')asfile_object:
forlineinfile_object:
print(line)
最后打印出来是这样的:
π≈
3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706
结尾有一个(“正常的”)空行,但在“π=”后面除了我们的认为空行,还另外又有一个空行。(原理与第一个程序的原理相同)
同样把最后一行改一下就OK了
withopen('pi.txt')asfile_object:
forlineinfile_object:
print(line.strip())
文件路径
中间我讲到的文件路径就是打开你的计算机,例如我的文件在
电脑(或计算机或home,名字是你可以自己取的,就是你放各种磁盘的那个最底层的地方)→ 娱乐 (F:) (Windows直接将物理磁盘显现出来,如是Mac/Linux没有直接显示物理磁盘,你可以离开了。名字是你自己取的,以F盘为例)→ Python (文件夹,这我就不多赘述)
Windows截图:(Mac和Linux等系统没有安装,只习惯Win)
那么路径是:
Windows:F:\Python\pi.txt (反斜杠)
Mac/Linux:/home/Python/pi.txt(正斜杠)
(P.S.:只要你点击文件最上方文件路径的那里,就是上图,可以直接取“F:\Python”/“F:/Python”的内容)
在Python中,如果你想打开不和你python文件一样文件夹的文件(txt)的话,只需要把上面的程序第一行变成
withopen('***')asfile_object:
***代表文件路径
(P.S.:由于python的反斜杠被视为转义标记,如果你是Windows系统,为确保万无一失,应该以原始字符串的方式指定路径:在单引号前最好加一个r)
另外,你还可以使用相对文件路径来打开文件,该位置是相对于当前运行程序的所在目录的,在此不多讲,园友们可自行探讨
原来的特别鸣谢好像有点违和
Thanks/ref: 感谢、参考:
1.CMum
2.《Python编程 从入门到实践》
京某:https://search.jd.com/Search?keyword=python%E7%BC%96%E7%A8%8B%20%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E5%AE%9E%E8%B7%B5&enc=utf-8&suggest=2.def.0.V00&wq=Python%E7%BC%96%E7%A8%8B&pvid=862976def02f4b53a0d943e1aba3d278
某宝:https://s.taobao.com/search?q=python%E7%BC%96%E7%A8%8B+%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E5%AE%9E%E8%B7%B5&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20180805&ie=utf8
3.https://www.cnblogs.com/DswCnblog/p/6126588.htmld
领取专属 10元无门槛券
私享最新 技术干货