ฉันกำลังดูวิธีการอินพุตและเอาต์พุตไฟล์ใน Python ฉันได้เขียนโค้ดต่อไปนี้เพื่ออ่านรายการชื่อ (หนึ่งรายการต่อบรรทัด) จากไฟล์ไปยังไฟล์อื่นในขณะที่ตรวจสอบชื่อกับชื่อในไฟล์และต่อท้ายข้อความที่เกิดขึ้นในไฟล์ รหัสใช้งานได้ ทำได้ดีกว่านี้ไหม
ฉันต้องการใช้with open(...
คำสั่งสำหรับทั้งไฟล์อินพุตและเอาต์พุต แต่ไม่สามารถดูว่าพวกเขาสามารถอยู่ในความหมายบล็อกเดียวกันได้หรือไม่ฉันต้องการเก็บชื่อไว้ในตำแหน่งชั่วคราว
def filter(txt, oldfile, newfile):
'''\
Read a list of names from a file line by line into an output file.
If a line begins with a particular name, insert a string of text
after the name before appending the line to the output file.
'''
outfile = open(newfile, 'w')
with open(oldfile, 'r', encoding='utf-8') as infile:
for line in infile:
if line.startswith(txt):
line = line[0:len(txt)] + ' - Truly a great person!\n'
outfile.write(line)
outfile.close()
return # Do I gain anything by including this?
# input the name you want to check against
text = input('Please enter the name of a great person: ')
letsgo = filter(text,'Spanish', 'Spanish2')
filter()
เป็นฟังก์ชันในตัว ดังนั้นคุณควรเลือกชื่ออื่นสำหรับฟังก์ชั่นของคุณ
filter()
) มันจะพบได้ก่อนที่จะติดตั้งในตัวfilter()