1.python中打开文件的四种方式
①在打开的文件路径前加(r)
确保文件路径中的反斜线作为普通字符处理,避免由于转义字符导致的错误。
file=open(r'F:\桌面\python100\output.txt',encoding='utf-8')
② 使用双反斜杠(\)
由于反斜杠(\
)在字符串中被视为转义字符的开始,因此需要使用两个反斜杠来表示一个实际的反斜杠字符。
file=open('F:\\桌面\python100\\output.txt',encoding='utf-8')
print(file.read())
③使用正斜杠(/)
Windows 系统默认使用反斜杠(\
)作为路径分隔符,在其他操作系统如 UNIX、Linux 和 macOS中,正斜杠都是标准的路径分隔符。因此python中使用正斜杠作为路径分隔符有跨平台兼容、避免转义等优点。
file=open('F:/桌面/python100/output.txt',encoding='utf-8')
④使用相对路径
当说要打开的文件与运行程序的代码位于同一文件目录下时,可以使用相对路径打开。
file=open('output.txt',encoding='utf-8') # 和程序在一个同一路径下才能打开
print(file.read())
2.python中的三种文件读写方式
详细教程参见:http://www.yiibai.com/python3/python_files_io.html
读文件有3种方法:
read()
将文本文件所有行全部读取到一个字符串中;
readline()
是一行一行的读,读到一行的内容就返回一个字符串。这意味着连续调用 readline()
将会依次读取文件中的每一行;
readlines()
是将文本文件中所有行读到一个list中,文本文件每一行是list中的一个元素。其优点是readline()
可以在读行过程中跳过特定行。
读写方法1
# 第一种方法:
# 把文件对象赋值给python变量file_1,以便后续的读取操作
# 打开名为'input.txt'的文件,使用UTF-8编码读取文件内容
file_1=open('input.txt',encoding='utf-8') # 输入文件在同级目录下,因此只写文件名即可
# 以写入模式打开名为'output.txt'的文件,使用UTF-8编码写入内容
# 文件对象赋值给变量file_2,以便后续的写入操作
file_2=open('output.txt','w', encoding='utf-8') #‘w’表示以写入模式打开输出文件
while True: #进入一个无限循环
line=file_1.readline() # 读取file_1文件对象的一行内容,并将其赋值给变量line
print(line.strip()) # 打印line的内容到控制台,使用strip()方法去除字符串两端的空白字符,包括换行符
file_2.write(line) # 将line的内容写入到file_2文件对象,即将每行内容写入'output.txt'文件
if not line: # 检查line是否为空,如果是空(表示文件已经读取到结尾),则退出循环
break # 跳出循环
file_2.close() # 关闭写入文件,确保所有写入的内容都被刷新到文件‘output.txt’
读写方法2
# 第二种方法,使用for循环
file_2=open('output.txt','w') # 打开文件 'output.txt' 以供写入, ('w' 表示写入模式)
for line in open('output.txt'): # 使用 open('output.txt') 打开文件 'output.txt' 以供读取(默认为读取模式 'r')
print(line.strip()) # 使用 for 循环遍历文件的每一行,将每一行的内容赋给变量 line
file_2.write(line) # 将当前行的内容写入文件 'output.txt'
file_2.close() # 关闭写入文件
读写方法3
#对数据进行读写
# 使用文件上下文管理器读取文件内容。在Python中,文件上下文管理器是通过使用 with 语句和 open 函数结合来实现的一种机制,用于对文件的操作。
# 这种方式确保在文件使用完毕后正确地关闭文件,即使发生异常也能够执行关闭操作。
with open('input.txt', 'r',encoding='utf-8') as f:
data = f.read() # 使用with语句打开文件'input.txt'以供读取。读取文件所有内容,并将其存储为一个字符串赋值给变量data。如果文件很大,这可能消耗大量内存。
print(data)
# 遍历文件的每一行,并对其进行处理
with open('input.txt', 'r') as f:
for line in f: # 循环迭代文件的每一行,允许你对每一行进行处理
# process line (这部分写如何处理每一行数据的代码实现)
# 写入文本数据块
with open('input.txt', 'w',encoding='utf-8') as f:
# 使用with语句打开文件'input.txt'以供写入,f.write(text1)和f.write(text2)将文本块写入文件
text1 = "Hello, this is text1."
text2 = "This is text2, another line of text."
f.write(text1)
f.write(text2)
# 继续写入其他文本块
...
读写方法4
# 重定向打印语句到文件的方法非常适用于生成报告、日志或任何需要保存输出结果的场景。
# print(line1, file=f)和print(line2, file=f)将line1和line2写入文件'f'中
# 这样可以将print语句的输出重定向到文件
# 需要注意的是这里的line1和line2变量需要在代码中进行定义
with open('input.txt', 'w',encoding='utf-8') as f:
# 需要写入的文本行
line1 = "Hello, this is line 1."
line2 = "This is line 2 with some data."
print(line1, file=f)
print(line2, file=f) # 使用print()函数的file参数,可以将指定的文本字符串输出到打开的文件f中,而不是默认的标准输出(通常是控制台)
最后,展示一个关于使用readlines()
读取文件的数据之后得到的列表并对其进行处理的示例。
data=['目前已成为UIT存储的金牌认证经销商、HUAWEI-3COM服务认证经销商、CISCO 精睿产品银牌经销商、CISCO商业市场服务合作伙伴。', '壹软网络科技有限公司', 'HUAWEI-3COM服务', '经销商']
print(data[2])
if data[2] in data:
print("存在")
以上内容总结自网络课程,整理不易,如有帮助欢迎转发,我们下次再见!