【发布时间】:2020-09-22 22:18:43
【问题描述】:
我正在尝试编写一个脚本,该脚本将获取一个包含未知数量的列的输入文件,以逗号分隔,并创建一个新文件(由用户指定的名称),其中列由制表符分隔。
我正在使用的测试输入文件如下所示:
Data 1,35,42,7.34,yellow,male
Data 2,41,46,8.45,red,female
这是我目前的代码:
# Read input file
infile = open("input_file.txt", "r")
line_count = 0
# Read as a collection, removing end line character
for line in infile:
print(line, end = "")
print("The input file contains", line_count, "lines.")
# Request user input for output file name
filename = input("Enter a name for the output file: ")
# Prompt for file name if entry is blank or only a space
while filename.isspace() or len(filename) == 0:
filename = input("Whoops, try again. Enter a name for the output file: ")
# Complete filename creation
filename = filename + ".txt"
filename = filename.strip()
# Write output as tab-delim file
for line in infile:
outfile = open(filename, "w")
outfile.write(line,"\t")
outfile.close()
print("Success, the file", filename, "has been written.")
# Close input file
infile.close()
写入输出的部分不起作用 - 它不会产生错误,但输出为空白。
【问题讨论】:
-
发生这种情况是因为
infile是一个生成器,当你循环一次它就会耗尽。 -
您也可以为每个
line使用openfilename,这意味着在写入之前将其清除。所以只修复发电机耗尽,你会在输出文件中得到一行
标签: python