我试图拉出文件中每一行的第一个字母,然后将这些字母打印到一个新文件中。我正在逐步工作,所以我创建了能够拉出每一行的第一个字母的代码,但是,当我添加代码来读取特定文件时,它似乎没有正确地迭代整个文件内容。有谁知道为什么我的for循环不迭代?或许,问题是它是迭代但没有正确地将字母添加到'行'。
def secret2(m):
infile = open(m, 'r')
text = infile.read()
for line in text:
lines = text[0]
for i in range(len(text)):
if text[i] == '\n':
lines += text[i+1]
print(lines)
return(lines)
m.close()
输出:
>>> secret2('file.txt')
A
'A'
>>>
适当的输出是:
>>> secret2('file.txt')
'ALICE'
>>>
答案 0 :(得分:1)
您的代码正在遍历字符而不是行。您可以使用以下代码打印每行中的第一个字符:
def secret2(m):
with open(m) as infile:
print(''.join(line[0] for line in infile if line))
答案 1 :(得分:0)
您希望将每一行视为单个数据。因此,请使用readlines()
代替read
。所以你的代码应该是
def secret2(m):
infile = open(m, 'r')
text = infile.readlines()
for j in (text):
print j[0]
答案 2 :(得分:0)
你可以使用这个:
def get_1st_chr(your_file, id_line) :
with open(your_file) as f :
text_splitted = f.read().splitlines()
f.close()
return text_splitted[id_line][0]
或者,如果你想要所有的第一行字符:
def get_1st_chr(your_file, nb_lines) :
with open(your_file) as f :
text_splitted = f.read().splitlines()
f.close()
for i in range(nb_lines) :
print(text_splitted[[i][0])
当然,您可以将 0
替换为您要打印的字符的 id。