python 或 bash - 在行首添加"并在行尾添加",

2 投票
9 回答
1745 浏览
提问于 2025-04-15 15:44

我有一个文本文件,里面的内容大概是这样的:

first line
line nr 2
line three

等等

我想生成这样的内容:

"first line",
"line nr 2",
"line three",

我想知道怎么用Python来实现这个,或者如果用bash更简单更快的话也可以。我知道在Python中打开文件和只读取一行的代码是不一样的,但我不太确定在这种情况下该用哪个选项,更重要的是,怎么添加这些字符。任何建议都很有帮助。

9 个回答

6

想成为真正的Unix高手吗?那就用sed吧!

sed 's/^/"/; s/$/",/;' < your_text_file

如果你想用反斜杠来转义已有的双引号,可以使用 's/"/\\"/g; s/^/"/; s/$/",/;' 这个模式。

sed 非常适合这种任务。你可以看看这个超长的示例列表

8
sed 's/.*/"&",/'

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

4

有很多简单的方法可以做到这一点……

这里有一个简单的 Perl 一行代码:

perl -pi -e 's/^(.*)$/\"$1\",/g' /path/to/your/file

简单解释一下,这个正则表达式 ^(.*)$ 会抓取整行的内容((.*)),也就是从行的开头(^)到行的结尾($)之间的所有东西,然后用 $1 这个匹配组变量把它重新组合成带引号和逗号的格式。

撰写回答