我正在研究如何在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')
Python允许将多个open()
语句放在一个语句中with
。您用逗号分隔。您的代码将是:
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.
'''
with open(newfile, 'w') as outfile, 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)
# input the name you want to check against
text = input('Please enter the name of a great person: ')
letsgo = filter(text,'Spanish', 'Spanish2')
不,通过return
在函数的末尾放置一个显式字符不会获得任何收益。您可以使用return
提前退出,但最后要退出,并且该函数将在没有退出的情况下退出。(当然,对于返回值的函数,您可以使用return
来指定要返回的值。)
引入该语句时,Python 2.5或Python 2.6不支持open()
与一起使用多个项目,但Python 2.7和Python
3.1或更高版本with
支持使用多个项目with
。
http://docs.python.org/reference/compound_stmts.html#the-with-statement
http://docs.python.org/release/3.1/reference/compound_stmts.html#the-with-
statement
如果要编写必须在Python
2.5、2.6或3.0中运行的代码,则将with
语句嵌套为建议的其他答案或使用contextlib.nested
。
问题内容: 我正在研究如何在Python中进行文件输入和输出。我编写了以下代码,以将文件列表中的名称列表(每行一个)读入另一个文件中,同时对照文件中的名称检查名称并将文本附加到文件中的出现位置。该代码有效。可以做得更好吗? 我想对输入和输出文件都使用该语句,但看不到它们如何位于同一块中,这意味着我需要将名称存储在一个临时位置。 问题答案: Python允许将多个语句放在一个语句中。你用逗号分隔。你
问题内容: 我想打开文件以使用argparse进行读取。在cmd中,它必须类似于:my_program.py / filepath 那是我的尝试: 问题答案: 参数的类型应为字符串(无论如何都是默认值)。因此,使它像这样:
问题内容: 我有一个将pdf文件作为ByteArrayOutputStream写入servlet的输出流的servlet。如果打开servlet URL,浏览器将打开文件。但是,如果在Servlet上发生错误,浏览器会打开一个带有错误消息的空白pdf。通过ServletResponse发送错误,浏览器将打开默认错误页面。 我要发送错误消息,而不重定向到错误页面或打开无效的pdf文件。 我试过了:
如何在测试中启用assert语句?
问题内容: 我尝试通过Java程序从本地(在我的系统中)打开HTML文件。我尝试了一些通过堆栈溢出获得的程序,但是它不能正常工作。 对于EG: 我有这个小的HTML文件。 我的Java代码: 任何解决方案或技巧表示赞赏。 问题答案: 我希望使用默认浏览器
问题内容: 我正在尝试使用javascript从JSON文件中提取元素,但是却收到一条错误消息,提示它无法加载JSON文件。 这是我的代码如下所示: 这是控制台吐出的错误: 问题答案: d3.json用于通过HTTP加载数据。正如@Quentin所说,您可以设置一个本地服务器来通过HTTP提供数据。 对于这样的开发,我使用firefox,它在处理本地跨源请求时似乎比chrome更宽容。或者,您可以