Python中文件的读取、写入

本文介绍了Python中如何使用内置的open函数进行文件操作,包括用read方法读取全部内容,readline逐行读取以及readlines返回所有行的列表。此外,还讲解了文件关闭的close方法和with语句的自动关闭功能。在写入方面,提到了‘w’模式用于覆盖写入,‘a’模式用于追加写入,以及‘r+’模式支持同时读写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 文件的读取

程序能够读取文件,便相当于程序有了自己的眼睛。用Python读取文件的第一步操作,是需要用其内置的open()函数打开目标文件。open()函数的常见形式如图1所示:

 图1 open()函数参数示意图

1.1 文件的读取

1.1.1 read方法——返回全部文件内容的字符串
# read方法 读取全部文件
f = open("./data.txt", "r", encoding="utf-8")   # 相对路径
content = f.read()
print(content)
f.close()                                       # 读取完关闭文件,释放资源
 1.1.2 readline方法————返回一行文件内容的字符串

readline方法,每次运行只会读取一行的内容,下次调用就读下一行,它会根据换行符来判断什么时候算本行结尾,而且换行符也会被当成读到的内容的一部分。一般会用While循环语句,判断只要返回的不是空字符串就继续读下一行,否则就退出循环

# readline方法,逐行读取
f = open("./data.txt", "r", encoding="utf-8")
line = f.readline()                             # 读取第一行
while line != "":                               # 判断当前行是否为空
    print(line)                                 # 不为空则打印当前行
    line=f.readline()                           # 读取下一行
  1.1.3 readlines方法——返回全部文件内容组成的列表

readlines会读取全部文件内容,并返回由每行组成的字符串列表,所以它一般回合for循环结合使用,先调用readlines()把所有行读出来,然后一行一行循环列表里的所有内容,

# readline方法,逐行读取
f = open("./data.txt", "r", encoding="utf-8")
line = f.readline()                             # 读取第一行
while line != "":                               # 判断当前行是否为空
    print(line)                                 # 不为空则打印当前行
    line=f.readline()                           # 读取下一行

1.2 文件的关闭

1.2.1 close()方法

读取完文件后,就要及时关闭文件。文件对象有一个叫close()的方法,调用后该文件对象就会释放系统资源。

f = open("./data.txt")  
print(f.read())
f.close()
1.2.2 with关键词

但有些时候我们很容易忘记调用Close,另外一种方法是用with关键词。with后面跟上open()函数的调用,然后as,后面跟上文件对象的命名。执行完毕后,文件就会被自动关闭。

with open("./data.txt", "r", encoding="utf-8") in f:
print(f.read())

2. 文件的写入

2.1 "w"写入模式

写文件与读文件有很多相似之处,都需要打开文件,并在操作完成后关闭文件。所以还是可以用熟悉的with open as,此时需要将读取模式"r"改为写入模式"w"。

with open("./poem.txt", "w", encoding="utf-8") as f:
    f.write("我欲乘风归去,\n又恐琼楼玉宇,\n高处不胜寒。")   # \n为换行符
# 运行结果
我欲乘风归去,
又恐琼楼玉宇,
高处不胜寒。

注意:"w"模式下,若原本没有poem.txt的存储路径,系统会帮你创建,但如果存在该文件并且有内容,系统会自动清除原本的所有内容。因此需要谨慎使用。

2.2 "a"附加模式

如果你不想删除原有内容,又想增加新内容,这时候需要使用附加模式"a"。

with open("./poem.txt", "w", encoding="utf-8") as f:
    f.write("我欲乘风归去,\n又恐琼楼玉宇,\n高处不胜寒。")

with open("./poem.txt", "a", encoding="utf-8") as f:
    f.write("\n起舞弄清影,\n何似在人间")
# 运行结果
我欲乘风归去,
又恐琼楼玉宇,
高处不胜寒。
起舞弄清影,
何似在人间

 2.3 "r+"附加模式

还有个需要注意的点,无论是"w"还是"a"模式,都无法直接去读文件里原本的内容,此时,选用"r+"模式,就可以同时支持读写文件了。

with open("./poem.txt", "w", encoding="utf-8") as f:
    print(f.read())
    f.write("hello")

### 关于ArcGIS License Server无法启动的解决方案 当遇到ArcGIS License Server无法启动的情况,可以从以下几个方面排查并解决问题: #### 1. **检查网络配置** 确保License Server所在的计算机能够被其他客户端正常访问。如果是在局域网环境中部署了ArcGIS Server Local,则需要确认该环境下的网络设置是否允许远程连接AO组件[^1]。 #### 2. **验证服务状态** 检查ArcGIS Server Object Manager (SOM) 的运行情况。通常情况下,在Host SOM机器上需将此服务更改为由本地系统账户登录,并重启相关服务来恢复其正常工作流程[^2]。 #### 3. **审查日志文件** 查看ArcGIS License Manager的日志记录,寻找任何可能指示错误原因的信息。这些日志可以帮助识别具体是什么阻止了许可服务器的成功初始化。 #### 4. **权限问题** 确认用于启动ArcGIS License Server的服务账号具有足够的权限执行所需操作。这包括但不限于读取/写入特定目录的权利以及与其他必要进程通信的能力。 #### 5. **软件版本兼容性** 保证所使用的ArcGIS产品及其依赖项之间存在良好的版本匹配度。不一致可能会导致意外行为完全失败激活license server的功能。 #### 示例代码片段:修改服务登录身份 以下是更改Windows服务登录凭据的一个简单PowerShell脚本例子: ```powershell $serviceName = "ArcGISServerObjectManager" $newUsername = ".\LocalSystemUser" # 替换为实际用户名 $newPassword = ConvertTo-SecureString "" -AsPlainText -Force Set-Service -Name $serviceName -StartupType Automatic New-ServiceCredential -ServiceName $serviceName -Account $newUsername -Password $newPassword Restart-Service -Name $serviceName ``` 上述脚本仅作为示范用途,请依据实际情况调整参数值后再实施。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值