如何防止删除空格并使我的值仅在一行上?

2024-10-05 11:42:46 发布

您现在位置:Python中文网/ 问答频道 /正文

当前.txt文件中的值:

1256

5679

   t67

y1

     890

我想要的最终结果是这些值介于“”和1行之间,而不删除空格并用逗号隔开:

'1256','5679','   t67','y1','     890'

我尝试的是:

output = r""
file_name = r"path"
string_to_add = "','"

with open(file_name, 'r') as f:
    file_lines = [''.join([x.strip(), string_to_add, '\n']) for x in f.readlines()]


with open(file_name, 'w') as f:
    f.writelines(file_lines)

但它不起作用,它删除了空格,并且没有添加相邻的值


Tags: 文件tonametxtaddstringaswith
3条回答

得到错误结果的原因是x.strip()这将删除所有空白。你知道吗

你就不能这样做:

#each line is now an entry in a list
data = open(sys.argv[1], 'r').readlines()

#remove newlines before writing to output 
line = ','.join(data)
OUT = open('output.txt','w')
OUT.write(line)
OUT.close()

方法字符串.strip()是这样工作的:https://www.programiz.com/python-programming/methods/string/strip

它将从字符串中删除括号内指定的字符,因此不提供任何字符将使方法返回相同的字符串,我想。你知道吗

方法字符串.连接工作方式:https://www.w3schools.com/python/ref_string_join.asp

它获取字符串并使用它连接字符串的iterable(list,tuple,…)

所以您在这里所做的只是在文件的每一行中添加一个','。你知道吗

尝试使用以下选项:

    with open(file_name, 'r') as f:
         for line in f.readlines():
              myString += '"' + line + '",'
         myString = myString[:-1]

x.strip()x的两侧删除空格、端点和制表符。您希望改用x.rstrip()只删除尾随空格和结束行。你知道吗

你也可以直接使用你的string_to_add加入,而不是你现在所做的。你知道吗

with open(file_name, 'r') as f:
    file_lines = string_to_add.join(x.rstrip() for x in f.readlines())

with open(file_name, 'w') as f:
    f.writeline(file_lines)

相关问题 更多 >

    热门问题