使用 for 循环从文本文件中删除制表符分隔的空格

发布于 2024-10-23 18:37:44 字数 150 浏览 4 评论 0 原文

对于我的 python 类,我正在打开一个 .tsv 文件并获取 15 行数据,分为 4 列,并将其转换为每行的列表。为此,我必须删除每列之间的选项卡。

有人建议我使用 for 循环并循环遍历每一行。这是有道理的,但我不知道如何删除标签。

有什么帮助吗?

For my python class, I am working on opening a .tsv file and taking 15 rows of data, broken down in 4 columns, and turning it into lists for each line. To do this, I must remove the tabs in between each column.

I've been advised to use a for loop and loop through each line. This makes sense but I can't figure out how to remove the tabs.

Any help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

李白 2024-10-30 18:37:44

要从文件中读取行并在制表符分隔符上分割每一行,您可以执行以下操作:

rows = []
for line in open('file.tsv', 'rb'):
    rows.append(line.strip().split('\t'))

To read lines from a file, and split each line on the tab delimiter, you can do this:

rows = []
for line in open('file.tsv', 'rb'):
    rows.append(line.strip().split('\t'))
夏天碎花小短裙 2024-10-30 18:37:44

正确地,这应该使用 Python CSV 模块 来完成(如另一个答案中所述)因为这将处理转义分隔符、引用值等。

从更一般的意义上来说,这可以通过

rows = [line.split('\t') for line in file]

并且,正如评论中所建议的,在某些情况下 生成器表达式将是更好的选择:

rows = (line.split('\t') for line in file)

请参阅生成器表达式与生成器表达式列出推导式,讨论何时使用每种推导式。

Properly, this should be done using the Python CSV module (as mentioned in another answer) as this will handle escaped separators, quoted values etc.

In the more general sense, this can be done with a list comprehension:

rows = [line.split('\t') for line in file]

And, as suggested in the comments, in some cases a generator expression would be a better choice:

rows = (line.split('\t') for line in file)

See Generator Expressions vs. List Comprehensions for some discussion on when to use each.

数理化全能战士 2024-10-30 18:37:44

您应该使用 Python 的 stdlib csv 模块,特别是 csv.reader 函数。

rows = [row for row in csv.reader(open('yourfile.tsv', 'rb'), delimiter='\t')]

还有一个 dialect 参数,可以采用 excel-tab< /a> 以符合 Microsoft Excel 的制表符分隔格式。

You should use Python's stdlib csv module, particularly the csv.reader function.

rows = [row for row in csv.reader(open('yourfile.tsv', 'rb'), delimiter='\t')]

There's also a a dialect parameter that can take excel-tab to conform to Microsoft Excel's tab-delimited format.

最单纯的乌龟 2024-10-30 18:37:44

查看内置字符串函数。 split() 应该可以完成这项工作。

>>> line = 'word1\tword2\tword3'
>>> line.split('\t')
['word1', 'word2', 'word3']

Check out the built-in string functions. split() should do the job.

>>> line = 'word1\tword2\tword3'
>>> line.split('\t')
['word1', 'word2', 'word3']
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文