python基础:(八)文件

2023-05-16

目录

      • 一.从文件中读取数据
        • 1.1读取整个文件
        • 1.2文件路劲
        • 1.3逐行读取
      • 二.写入文件

一.从文件中读取数据

各位小伙伴,文件这一块得好好学,多看多敲代码,以后处理数据,写爬虫少不了这个,先从基础(简单的)抓起,会用,然后在拓展延伸。

1.1读取整个文件

新建一个文本文件,在当前文件的根目录下,如下图所示:

在这里插入图片描述

该文件存储的是部分圆周率pi,部分内容如下:
3.1415926535
  8979323846
  2643383279

讲解放在代码的注释,可以边看代码边对应注释进行参考:

with open('pi.txt') as file_object:
    contents = file_object.read()
print(contents)
# 关键字with在文件不需要访问时自动关闭文件避免数据的丢失
# 函数open(),括号内部接受的是打开文件的路径。(python是在当前文件所在的目录中查找,就是和它同级目录),(默认只读)
# as file_object也就是这个文件对象(file_object)
# read()读取文件对象的值
# 注意使用read()读取到达文件末尾时返回一个空字符串,若想避免则可以调用rstrip()函数(contente.rstrip())

ps:补充个知识,就是文件都必须先打开在编辑,然后在关闭。

1.2文件路劲

路径有绝对路径和相对路径之分。
绝对路径:文件在计算机的准确位置。(c:/桌面/xxxx/xxxx)
相对位置:在当前文件的根目录。(xxx/xxx)

  • ps:pycharm中文件右击文件会出现相对与绝对路径。
  • ps:python文件使用‘/’。
  • ps:windows文件使用‘\’。
  • ps:python文件路径要么使用‘/’,要么使用‘\ \’。(\通常和转义字符相关,\ \对每个斜杠进行转义)
    在这里插入图片描述

1.3逐行读取

#open('pi.txt')
#open('D:/Users/15204/Desktop/BingImageSpider-main/pi.txt')
with open('D:\\Users\\15204\\Desktop\\BingImageSpider-main\\pi.txt') as file_object:
    for line in file_object: #for循环,在文件中逐行读取内容
        print(line)

运行结果:
在这里插入图片描述
说明:
因为每一行文件本身存在一个换行符,print()函数存在一个换行符,因此打印的结果间距变大,若想避免,则继续使用rstrip函数即可。
在这里插入图片描述

二.写入文件

读取文件,相对应的就是写入文件,看下例:

with open('hobby','w') as file_object: # open调用两个实参,第一个文件名(路径就是该文件的同级目录,所以不说路径),第二个是以什么方式打开,w是写入(write)
    file_object.write("I love one person,but it's a pity.")

在这里插入图片描述
运行程序以后:
在这里插入图片描述
ps:python只能将字符串写入文本文件,那也就是问什么创建的hobby文件类型是.txt。如果你想存储数据的话,必须使用函数str()转换为字符串格式。

'w':write,写入文件,如果没有的话创建文件,如果有这个文件的话,文件内容将被清空在写入,若想避免可以使用'a'
'r':read,读取模式,字面意思
'a':add,附加模式,在原先基础添加
'r+':读写模式,字面意思

ps:若想写入多行数据,可以重复调用语句:

 file_object.write("xxxxxx")
 # 注意此时写入是紧跟在文件末尾写入的(你可以使用换行符\n进行换行逐行输入)

ps:目前为止,博客写到这,python的基础语法就全部写完啦(建议先学c语言,有c基础的话(有时间会出个c系列),python语法最快一周左右就能掌握个差不多,能看懂别人代码)。博主因为要开学了,后面有时间会更新一些处理python异常,爬虫(在学习),GUI,以及一些数据的处理等等。

ps:博主水平有限,有问题欢迎大家指出,大家一起学习,一起进步!

ps:因为时间紧凑,所以博主写这些文章就是抓最基本的知识点,其它的可以举一反三。

ps:学完最基础的知识点,就可以着手做一些简单的项目,在项目中锻炼自己的编程能力,加油兄弟们!

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

python基础:(八)文件 的相关文章

  • xlrd.biffh.XLRDError:Excel xlsx 文件;不支持[重复]

    这个问题在这里已经有答案了 我正在尝试使用读取启用宏的 Excel 工作表pandas read excel与 xlrd 库 它在本地运行良好 但是当我尝试将其推送到 PCF 时 我收到此错误 2020 12 11T21 09 53 441
  • PyQt:如何通过匿名代理使用网页

    这真让我抓狂 我想在 QWebPage 中显示一个 url 但我想通过匿名代理来实现 Code setting up the proxy proxy QNetworkProxy proxy setHostName 189 75 98 199
  • JavaScript 相当于 Python 的参数化 string.format() 函数

    这是 Python 示例 gt gt gt Coordinates latitude longitude format latitude 37 24N longitude 115 81W Coordinates 37 24N 115 81W
  • 从Python中的字符串中提取货币金额

    我正在制作一个程序 从字符串中获取货币并将其转换为其他货币 例如 如果字符串是 the car cost me 13 250 我需要得到 and 13250 我已经有了这个正则表达式 1 确实如此 但是该字符串很有可能有多个价格 并且全部使
  • for 循环如何评估其参数

    我的问题很简单 Does a for循环评估它每次使用的参数 Such as for i in range 300 python 是否会为此循环的每次迭代创建一个包含 300 个项目的列表 如果是的话 这是避免这种情况的方法吗 lst ra
  • 如何使用显式引用转储 YAML?

    递归引用非常适合ruamel yaml or pyyaml ruamel yaml dump ruamel yaml load A A id001 id001 然而 它 显然 不适用于普通引用 ruamel yaml dump ruamel
  • 查找模块中显式定义的函数 (python)

    好的 我知道您可以使用 dir 方法列出模块中的所有内容 但是有什么方法可以仅查看该模块中定义的函数吗 例如 假设我的模块如下所示 from datetime import date datetime def test return Thi
  • 如何在 Python 3 中循环遍历集合,同时从集合中删除项目

    这是我的情况 我有一个list set 哪个并不重要 movieplayer我想调用的对象 preload 功能开启 该预加载函数可以立即返回 但希望将来返回一点 我想存储这个电影播放器 集合 表明它们尚未预加载 然后循环它们 调用prel
  • 更改 python tkinter canvas 中的线坐标

    我画了一条线tkinter Canvas现在我想移动一端 这可能吗 例如和itemconfig import tkinter tk tkinter Tk canvas tkinter Canvas tk canvas pack line c
  • WindowsError:[错误 126] 使用 ctypes 加载操作系统时

    python代码无法在Windows 7平台上运行 def libSO lib ctypes cdll LoadLibrary ConsoleApplication2 so lib cfoo2 1 3 当我尝试运行它时 得到来自python
  • Apache Spark 中的高效字符串匹配

    我使用 OCR 工具从屏幕截图中提取文本 每个大约 1 5 句话 然而 当手动验证提取的文本时 我注意到时不时会出现一些错误 鉴于文本 你好 我真的很喜欢 Spark 我注意到 1 像 I 和 l 这样的字母被 替换 2 表情符号未被正确提
  • 与 while 循环一样,如何跳过 for 循环中的步骤?

    我尝试像 while 循环一样跳过 for 循环中的几个步骤 在 while 循环中 步骤根据特定条件进行调整 如下面的代码所示 i 0 while i lt 10 if i 3 i 5 else print i i i 1 result
  • Python多处理错误“ForkAwareLocal”对象没有属性“连接”

    下面是我的代码 我面临着多处理问题 我看到这个问题之前已经被问过 我已经尝试过这些解决方案 但它似乎不起作用 有人可以帮我吗 from multiprocessing import Pool Manager Class X def init
  • 乘以行并按单元格值附加到数据框

    考虑以下数据框 df pd DataFrame X a b c d Y a b d e Z a b c d 1 2 1 3 df 我想在 列中附加数字大于 1 的行 并在该行中的数字减 1 df 最好应该 然后看起来像这样 或者它可能看起来
  • 如何使用 sys.path.append 在 Python 中导入文件?

    我的桌面上有两个目录 DIR1 and DIR2其中包含以下文件 DIR1 file1 py DIR2 file2 py myfile txt 这些文件包含以下内容 file1 py import sys sys path append s
  • Python 声音(“铃声”)

    我想让一个 python 程序在完成任务时通过发出嘟嘟声来提醒我 目前 我使用import os然后使用命令行语音程序说 进程完成 我更愿意它是一个简单的 铃 我知道有一个函数可以用于Cocoa apps NSBeep 但我认为这与此没有太
  • 检测 IDLE 的存在/如何判断 __file__ 是否未设置

    我有一个脚本需要使用 file 所以我了解到 IDLE 没有设置这个 有没有办法从我的脚本中检测到 IDLE 的存在 if file not in globals file is not set 如果你想做一些特别的事情 file 未设置
  • 在 virtualenvwrapper 中激活环境

    我安装了virtualenv and virtualenvwrapper用这个命令我创建了一个环境 mkvirtualenv cv 它有效 创建后我就处于新环境中 现在我重新启动了我的电脑 我想activate又是那个环境 但是怎么样 我使
  • 如何在单元测试中使用 JSON 发送请求

    我的 Flask 应用程序中有在请求中使用 JSON 的代码 我可以像这样获取 JSON 对象 Request request get json 这一直工作得很好 但是我正在尝试使用 Python 的 unittest 模块创建单元测试 但
  • 如何获取所有mysql元组结果并转换为json

    我能够从表中获取单个数据 但是当我试图获取表上的所有数据时 我只得到一行 cnn execute sql rows cnn fetchall column t 0 for t in cnn description for row in ro

随机推荐