Python 如何将每行拆分为两个字符串,并在不使用逗号的情况下打印?
我试图让输出不带逗号,并将每一行分成两个字符串并打印它们 到目前为止,我的代码生成:Python 如何将每行拆分为两个字符串,并在不使用逗号的情况下打印?,python,Python,我试图让输出不带逗号,并将每一行分成两个字符串并打印它们 到目前为止,我的代码生成: 173,70 134,63 122,61 140,68 201,75 222,78 183,71 144,69 但我希望它打印出来时不带逗号,每行上的值以字符串分隔 if __name__ == '__main__': # Complete main section of code file_name = "data.txt" # Open the file for reading
173,70
134,63
122,61
140,68
201,75
222,78
183,71
144,69
但我希望它打印出来时不带逗号,每行上的值以字符串分隔
if __name__ == '__main__':
# Complete main section of code
file_name = "data.txt"
# Open the file for reading here
my_file = open('data.txt')
lines = my_file.read()
with open('data.txt') as f:
for line in f:
lines.split()
lines.replace(',', ' ')
print(lines)
以open('data.txt',r')作为f的:
对于f中的行:
对于第.split(',')行中的值:
打印(值)
将open('data.txt',r')作为f:
对于f中的行:
对于第.split(',')行中的值:
打印(值)
虽然python可以为我们提供几种打开文件的方法,但这是处理文件的首选方法。因为我们是在惰性模式下打开文件(这是首选模式,尤其是对于大文件),并且在退出带有范围(标识块)的后,系统将自动关闭文件io
在这里,我们以读取模式打开文件。文件遵循迭代器策略,因此我们可以像列表一样对它们进行迭代。每一行都是文件中的一行,是字符串类型
在得到line,in-line变量后,我们将该行拆分为两个标记,一个在逗号之前,另一个在逗号之后。拆分返回新构造的字符串列表。如果需要省略一些不需要的字符,可以使用。通常是将剥离和拆分结合在一起
优雅高效的文件读取-方法1
非优雅但高效的文件读取-方法2
虽然python可以为我们提供几种打开文件的方法,但这是处理文件的首选方法。因为我们是在惰性模式下打开文件(这是首选模式,尤其是对于大文件),并且在退出带有范围(标识块)的后,系统将自动关闭文件io 在这里,我们以读取模式打开文件。文件遵循迭代器策略,因此我们可以像列表一样对它们进行迭代。每一行都是文件中的一行,是字符串类型 在得到line,in-line变量后,我们将该行拆分为两个标记,一个在逗号之前,另一个在逗号之后。拆分返回新构造的字符串列表。如果需要省略一些不需要的字符,可以使用。通常是将剥离和拆分结合在一起 优雅高效的文件读取-方法1 非优雅但高效的文件读取-方法2
在示例代码中,
行
以str
的形式包含文件的全部内容
my_file = open('data.txt')
lines = my_file.read()
然后重新打开该文件以迭代行:
with open('data.txt') as f:
for line in f:
lines.split()
lines.replace(',', ' ')
但是,请注意,不要修改现有值,如所示。还要注意,您在那里操作的是行
,而不是for循环变量行
相反,您需要将这些函数的结果赋给新值,或者将它们作为参数(例如,toprint
)。因此,您需要打开该文件,在各行上迭代,并用“,”
替换为”
打印值:
或者,由于您仍在对整个文件进行操作:
with open("data.txt") as f:
print(f.read().replace(",", " "))
或者,由于您的文件似乎是CSV内容,您可能希望改用标准库中的:
import csv
with open("data.txt", newline="") as csvfile:
for row in csv.reader(csvfile):
print(*row)
在示例代码中,
行
以str
的形式包含文件的全部内容
my_file = open('data.txt')
lines = my_file.read()
然后重新打开该文件以迭代行:
with open('data.txt') as f:
for line in f:
lines.split()
lines.replace(',', ' ')
但是,请注意,不要修改现有值,如所示。还要注意,您在那里操作的是行
,而不是for循环变量行
相反,您需要将这些函数的结果赋给新值,或者将它们作为参数(例如,toprint
)。因此,您需要打开该文件,在各行上迭代,并用“,”
替换为”
打印值:
或者,由于您仍在对整个文件进行操作:
with open("data.txt") as f:
print(f.read().replace(",", " "))
或者,由于您的文件似乎是CSV内容,您可能希望改用标准库中的:
import csv
with open("data.txt", newline="") as csvfile:
for row in csv.reader(csvfile):
print(*row)
在for循环中移动您的打印状态,如下
print(lines.replace(“,”,”)
,这将产生您需要的内容。在for循环中移动您的打印状态,如下print(lines.replace(“,”,”)
,这将产生您需要的内容。您能否详细说明代码或提供说明?如需参考,请参阅答案。您能否详细说明代码或提供说明?参考答案见