在 Python 中将制表符分隔值写入文件

在 Python 中将制表符分隔值写入文件

Writing tab-separated values to a File in Python

将制表符分隔值写入文件:

  1. 以写入模式打开文件。
  2. 使用该\t字符在字符串中插入制表符。
  3. 使用file.write()方法将字符串写入文件。
主程序
# ✅ write strings separated by tabs to file with open('example.txt', 'w', encoding='utf-8') as my_file: my_file.write('bobby' + '\t' + 'hadz' + '\n') my_file.write('first\tsecond') # ✅ separate the items of a list by tabs and write the result to a file with open('example.txt', 'w', encoding='utf-8') as my_file: my_list = ['bobby', 'hadz', 'com'] my_file.write('\t'.join(my_list) + '\n')

我们使用该with语句以写入模式打开文件。

with语句会自动为我们关闭文件。

如果您只需要在字符串中插入制表符,请使用\t字符。

主程序
with open('example.txt', 'w', encoding='utf-8') as my_file: my_file.write('bobby' + '\t' + 'hadz' + '\n') my_file.write('first\tsecond')

example.txt文件的内容如下所示。

例子.txt
bobby hadz first second

您可以阅读该文件以验证它是否包含选项卡。

主程序
with open('example.txt', 'r', encoding='utf-8') as f: lines = f.readlines() print(lines) # 👉️ ['bobby\thadz\n', 'first\tsecond']

如果需要在字符串后添加新行,可以使用\n字符。

如果需要用制表符分隔列表项并将结果写入文件,请使用str.join()方法。
主程序
with open('example.txt', 'w', encoding='utf-8') as my_file: my_list = ['bobby', 'hadz', 'com'] my_file.write('\t'.join(my_list) + '\n')

str.join方法将一个可迭代对象作为参数并返回一个字符串,该字符串是可迭代对象中字符串的串联。

请注意,TypeError如果可迭代对象中有任何非字符串值,该方法将引发 a。

如果您的 iterable 包含数字或其他类型,请在调用之前将所有值转换为字符串join()

主程序
with open('example.txt', 'w', encoding='utf-8') as my_file: my_list = ['bobby', 1, 'hadz', 2, 'com'] my_file.write('\t'.join(str(item) for item in my_list) + '\n')

调用该方法的字符串用作元素之间的分隔符。

str.join()我们在包含制表符的字符串上调用该方法,以使用制表符分隔符连接列表中的元素。

该文件的内容如下所示。

例子.txt
bobby 1 hadz 2 com

或者,您可以访问索引处的每个列表项并使用加法 (+) 运算符。

主程序
with open('example.txt', 'w', encoding='utf-8') as my_file: my_list = ['bobby', 1, 'hadz', 2, 'com'] my_file.write( my_list[0] + '\t' + str(my_list[1]) + '\t' + my_list[2] + '\t' + str(my_list[3]) + '\t' + my_list[4] + '\n' )

加法 (+) 运算符可用于连接字符串。

但是,您必须确保运算符左右两侧的值是字符串类型。

如果您有不同类型的值,请使用str()该类将它们转换为字符串。

您还可以使用for循环遍历列表并在每个项目之后添加一个选项卡。

主程序
with open('example.txt', 'w', encoding='utf-8') as my_file: my_list = ['bobby', 1, 'hadz', 2, 'com'] for word in my_list: my_file.write(str(word) + '\t') my_file.write('\n')

for循环遍历列表并使用加法 (+) 运算符在每个项目后添加一个制表符

最后一步是将换行符 ( \n) 写入文件。