一、文件定位和读取内容
在Python中,我们可以使用内置函数open()来打开一个文件,打开文件后可以选择读取文件的方式,常用的方式有:读取整个文件、逐行读取文件和读取部分文件。
1、读取整个文件
with open('file.txt', 'r') as f:
content = f.read()
使用上面的代码可以打开名为file.txt的文件,并将整个文件内容读入到字符串变量content中,可通过print(content)输出该文件的内容。
2、逐行读取文件
with open('file.txt', 'r') as f:
for line in f.readlines():
print(line.strip())
使用上面的代码可以打开文件并逐行读取文件内容,readlines()方法将每行文本作为一个字符串放进列表中,for循环取出每行并去掉行尾的换行符,可通过print(line)按行输出该文件的内容。
3、读取部分文件
with open('file.txt', 'r') as f:
content = f.read(10)
使用上面的代码可以打开文件并读取前10个字符,可通过print(content)输出该文件开头的10个字符。
二、查找指定字符位置
在Python中,我们可以使用字符串的find()和index()方法查找指定字符在字符串中的位置,其中find()方法和index()方法有所不同。find()方法查找不到时返回-1,而index()方法查找不到时会抛出异常。
1、find()方法
s = 'abcdefghi'
print(s.find('c')) # 输出2
使用上面的代码可以在字符串s中查找字符'c'的位置,输出值为2。
2、index()方法
s = 'abcdefghi'
print(s.index('c')) # 输出2
使用上面的代码也可以在字符串s中查找字符'c'的位置,输出值也为2。
三、综合实现
以下示例将演示如何读取文件,并查找其中包含字符'Python'的行,输出该行在文本中的起始位置和行内容(仅输出第一行符合条件的结果)。
with open('file.txt', 'r', encoding='UTF-8') as f:
lineno = 0
for line in f.readlines():
lineno += 1
if 'Python' in line:
pos = line.find('Python')
print(f"第{lineno}行,起始位置为{pos},内容为:{line.strip()}")
break
使用上面的代码可读取文件file.txt,逐行查找是否包含字符'Python',若包含则输出找到的第一行的行号、起始位置和内容。其中strip()方法是用来去掉换行符的。