python - 尽管替换了一个的输出,但文件是相同的
问题描述
问题:
我正在使用 python 来尝试随机化 Geometry Dash 图像。它们存储在GJ_GameSheetX
显示大部分图像的大型 png 文件中(称为 ,其中 x 是 1 到 4 之间的数字)。它们附带一个 .plist 文件,该文件说明每个图像在 GameSheet 文件中的位置。我正在使用 python 来(尝试和)随机化 plist 文件说它们所在的位置 - 但输出文件与未更改的文件相同。
代码:
import random
# os.system("dir /b \"C:\\Program Files (x86)\\Steam\\steamapps\\common\\Geometry Dash\\Resources\" > directories.txt")
# Unnecessary dir
def wal(l, n):
with open(fr"GameFiles\Finals\GS_{n}.txt", "w") as ff:
ff.writelines(l)
for i in range(4):
ii = "0" + str(i + 1)
if ii == "01": ii = ""
os.system(f"xcopy \"C:\\Program Files (x86)\\Steam\\steamapps\\common\\Geometry Dash\\Resources\\GJ_GameSheet{ii}.plist\" GameFiles /Y")
with open(f"GameFiles\\GJ_GameSheet{ii}.plist", "r") as f:
text_nosplit = str(f.read())
ftext = text_nosplit.replace("\\n", "").replace(" ", "")
ftext = ftext.split("</string>")
for _ in range(5): # Recurses a few times to clear out the list properly.
for x in range(len(ftext)):
try:
if not ftext[x][0:4] == "<key>" or "smartupdate" in ftext[x]: ftext.pop(x)
try:
ftext[x].index("}}")
ftext[x] = ftext[x].replace("}}", "}}</string>")
except ValueError:
ftext[x] = ftext[x].replace("}", "}</string>")
except IndexError:
break
for x in range(len(ftext) - 1):
l = ftext[x].index("<key")
le = l + 1
while ftext[x][le] != "<":
le += 1
ftext[x] = ftext[x].replace(ftext[x][l : le + 6], "")
if ftext[x][-1] == "}":
ftext[x] = ftext[x].replace("}", "}</string>")
ftext[x] = ftext[x].replace("<string>", "")
ftext[x] = ftext[x].replace("</string>", "")
ftext[x] = ftext[x].replace("\n", "")
ftext[x] = ftext[x].replace(" ", "")
with open(fr"GameFiles\Finals\GS_{ii}.txt", "w") as ff:
repls = []
t_shuffled = random.sample(ftext, len(ftext))
for n, i in enumerate(ftext):
text_nosplit.replace(i, t_shuffled[n])
if (n == len(ftext) - 1): wal(text_nosplit, ii)
解决方案
推荐阅读
- javascript - 检查 url 并从中获取参数以形成元素
- java - 远程和分布式对象的类比
- ios - 使用 AppsFlyer 和 React Native 启动 Universal Link 时未调用 continueUserActivity
- flutter - 如何在不编辑 Flutter 中的装饰的情况下将 suffixIcon 添加到 TextFormField?
- python - 如何在数组的元素中找到第n次出现,然后在python中用零替换第n次出现后的数字
- python-3.x - 如何在 Django 中通过 FileField 上传 NamedTemporaryFile
- c++ - 指向子类是模板类的基类的共享指针
- python - 就像 cv2.boundingrect 一样,围绕从 mediapipe 手部界标检测返回的所有点创建一个矩形
- javascript - 为什么在 React-Router-Dom 的路由器中需要“历史”?
- java - NullPointerException:尝试调用虚方法bottomnavigation.BottomNavigationView.setOnNavigationItemSelectedListener