【发布时间】:2021-02-09 20:36:11
【问题描述】:
首先我会说我已经看到了类似question 的答案。我试图用它来解决我的问题,但我无法让它正常工作。
我有多个具有相同前缀和后缀的 .xyz 文件,从 0 开始。可能有 100 多个文件,因此不要单独定义它们是必不可少的。我需要按数字顺序将这些文件合并/连接/附加到merged.xyz。例如:
输出0.xyz:
H 1.0 1.0 1.0
输出1.xyz:
H 2.0 2.0 2.0
合并的.xyz:
H 1.0 1.0 1.0
H 2.0 2.0 2.0
我已经将其作为一个简单的测试用例进行了尝试:
tempfiles = ['output0.xyz', 'output1.xyz']
f = open("bigtextfile.xyz", "w")
for tempfile in tempfiles:
f.write(tempfile.read())
但我明白了:
Traceback (most recent call last):
File "Test.py", line 28, in <module>
f.write(tempfile.read())
AttributeError: 'str' object has no attribute 'read'
我尝试过的另一种选择:
prefix = "output"
suffix = ".xyz"
count = 0
while count <= 1:
for filename in os.listdir('./'):
if filename.endswith(suffix):
xyzFile = open(prefix + str(count) + suffix, "r")
lines = xyzFile.readlines()
xyzFile.close()
merged = open("merged" + suffix, "a")
for line in lines:
merged.write(line)
merged.close()
count += 1
但它会复制第一个文件两次,第二个文件复制三次:
H 1.0 1.0 1.0
H 1.0 1.0 1.0
H 2.0 2.0 2.0
H 2.0 2.0 2.0
H 2.0 2.0 2.0
你建议我如何前进?我倾向于第二种解决方案,因为它已经按数字顺序自动获取文件的内容。如果您需要任何其他详细信息以及如何改进问题,请告诉我。
【问题讨论】:
标签: python