Python中的bash "echo $(cat file)"类比(再谈字符串插值)

1 投票
2 回答
3376 浏览
提问于 2025-04-16 23:38

我有一个文件叫做 values.txt,里面的内容是分层格式的,像这样:

group1
      subgroup1
            value1
            value2
group2
      subgroup2
            value3
            value4

如果我在 bash 里执行

echo $(cat values.txt)

我会得到这样的输出:

group1 subgroup1 value1 value2 group2 subgroup2 value3 value4

我想在 Python 脚本里也能得到和这个完全一样格式的字符串,这样我就可以很方便地通过空格来分割它,方便后续处理。

谢谢!

2 个回答

0

在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这些问题可能是因为我们写的代码有bug,或者是因为我们没有正确理解某些概念。

当我们在网上寻找解决方案时,StackOverflow是一个很好的地方。在那里,很多程序员会分享他们的经验和解决方案,帮助其他人解决类似的问题。

如果你在StackOverflow上看到一个问题,通常会有很多人提供不同的答案和建议。你可以根据这些信息来找到适合自己的解决办法。

记住,编程是一项需要不断学习和实践的技能,遇到问题是很正常的,不要气馁!

with open('values.txt') as file:
    data = file.read()
    data = ' '.join(data.split())
    print data
    # or just:
    data = file.read().split()
3

正如Byron所提到的,split默认是根据空格来分割的,所以你只需要这样做

contents = open("values.txt", "r").read().split()

就能得到你想要的列表,这样就把你描述的两个步骤合并成一个了。如果你还有其他需要用到“格式完全相同的字符串”的地方,你可以通过分割后的列表来生成它,方法是

" ".join(contents)

撰写回答